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ékeDOTNET_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=0
beá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.
Javasolt művelet
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.