x86-Hostpfad unter 64-Bit-Windows

Die x86-Versionen der .NET-Installationsprogramme für Windows wurden so geändert, dass der x86-Hostspeicherort (Programme (x86)\dotnet) auf 64-Bit-Windows-Systemen nicht mehr zur Umgebungsvariablen PATH hinzugefügt wird.

Wenn aufgrund dieser Änderung der Speicherort des x86-Hosts von einer früheren Version von .NET zu PATH hinzugefügt wurde, wird er bei den x86-Versionen von .NET-Installationsprogrammen und .NET-Updates beim Upgrade entfernt.

Diese Änderung betrifft .NET Core 3.1, .NET 6, .NET 7 und zukünftige Versionen.

Diese Änderung betrifft nur den dotnet-Host. 32-Bit/x86-Anwendungshosts wie myapp.exe sind davon nicht betroffen. Diese Hosts werden die x86-Runtime weiterhin ordnungsgemäß finden (vorausgesetzt, sie ist installiert).

Vorheriges Verhalten

Der Speicherort des x86-Hosts wurde zu PATH hinzugefügt, auch auf x64/Arm64-Systemen. Je nachdem, welches Installationsprogramm für die .NET-Architektur zuerst ausgeführt wurde, könnte auf dem Computer eines Benutzers entweder der native (x64/Arm64) oder der x86-Host zuerst in PATH aufgeführt sein.

Neues Verhalten

In Zukunft wird der Speicherort des x86-Hosts nur noch auf x86-Systemen zur Umgebungsvariablen PATH hinzugefügt und beim Upgrade von .NET oder Visual Studio auf x64- und arm64-Systemen entfernt.

Eingeführt in Version

.NET 7

Grund für die Änderung

Derzeit wird der Speicherort des x86-Hosts zu PATH hinzugefügt, auch auf x64/Arm64-Systemen. Je nachdem, welches Installationsprogramm für die .NET-Architektur zuerst ausgeführt wird, könnte der Computer eines Benutzers entweder den nativen (x64/Arm64) oder den x86-Host als ersten Speicherort in der PATH-Liste aufweisen. Diese Mehrdeutigkeit führt zu Problemen bei der Erstinstallation von .NET und bei Ereignissen im Rahmen der .NET-Wartung. Jedes dieser Installationsszenarien kann die Reihenfolge der .NET-Hosts in PATH ändern, sodass sie nicht deterministisch ist. Es besteht eine hohe Wahrscheinlichkeit für die Verhaltensregression der .NET-Runtime.

Diese Änderung optimiert die dotnet-Hosterfahrung auf 64-Bit-Windows-Systemen. Nur 64-Bit-Hosts sind in der Umgebungsvariablen PATH des Systems verfügbar: der x64-Host auf x64-Systemen und der Arm64-Host auf Arm64-Systemen. Wir haben die Mehrdeutigkeit in der Reihenfolge der dotnet-Hosts in PATH entfernt, und es wird nur ein Host vorhanden sein.

Wenn Sie den x86-Host in der Umgebungsvariablen PATH auf x64/Arm64-Systemen benötigen, fügen Sie den Hostspeicherort manuell zu PATH hinzu.

Betroffene APIs

Keine.