Megosztás a következőn keresztül:


A többszintű keresés le van tiltva

Windows rendszeren a keretrendszerfüggő .NET-alkalmazások többé nem keresnek keretrendszereket több telepítési helyen.

Előző viselkedés

A korábbi verziókban egy keretrendszerfüggő .NET-alkalmazás több telepítési helyen is keresett keretrendszereket a Windowson. A helyek a következőek voltak:

  • Az alkalmazás dotneten keresztüli futtatásakor a végrehajthatóhoz képest az dotnet alkönyvtárak.
  • Amikor futtatja az alkalmazást a végrehajtható (apphost) rendszeren keresztül, a környezeti változó értéke DOTNET_ROOT által megadott helyet (ha be van állítva).
  • A globálisan regisztrált telepítési hely a HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (ha be van állítva).
  • A %ProgramFiles%\dotnet (vagy %ProgramFiles(x86)%\dotnet alapértelmezett telepítési helye 32 bites folyamatokhoz a 64 bites Windows rendszeren.

Ez a többszintű keresési viselkedés alapértelmezés szerint engedélyezve volt, de a környezeti változó DOTNET_MULTILEVEL_LOOKUP=0beállításával letiltható.

Új viselkedés

A .NET 7 vagy újabb verziót célzó alkalmazások csak egy helyen keresnek keretrendszereket, amely az első hely, ahol .NET-telepítés található. Ha egy alkalmazást dotneten futtat, a keretrendszerek csak a végrehajthatóhoz képest dotnet alkönyvtárakban kereshetők. Amikor futtat egy alkalmazást a végrehajtható (apphost) rendszeren keresztül, a keretrendszerek csak az első helyen keresnek, ahol a .NET található:

  • A környezeti változó értéke DOTNET_ROOT által megadott hely (ha be van állítva).
  • A globálisan regisztrált telepítési hely a HKLM\SOFTWARE\dotnet\Setup\InstalledVersions<arch>\InstallLocation (ha be van állítva).
  • A %ProgramFiles%\dotnet (vagy %ProgramFiles(x86)%\dotnet alapértelmezett telepítési helye 32 bites folyamatokhoz a 64 bites Windows rendszeren.

Bevezetett verzió

.NET 7

A kompatibilitástörő változás típusa

Ez a változás befolyásolhatja a bináris kompatibilitást.

A változás oka

A többszintű keresés számos problémát okozott:

  • Zavar a felhasználók számára: az alkalmazás a .NET privát telepítésből való futtatása ellenére választhat globális vagy alapértelmezett telepítési helyet.
  • Inkonzisztencia a platformok között (Windows és nem Windows).
  • Viselkedési törések, gyakran automatizált rendszerekben: egy új globális .NET-telepítés hatással lehet az egyébként elkülönített buildekre és tesztekre.
  • Teljesítményproblémák.

Győződjön meg arról, hogy a .NET szükséges verziója az egyetlen .NET telepítési helyen van telepítve. A sikertelen indításkor megjelenő hibaüzenetek tartalmazzák a várt helyet.

Érintett API-k

Nincs.