Udostępnij za pośrednictwem


Ścieżka hosta x86 w 64-bitowym systemie Windows

Wersje x86 instalatorów platformy .NET dla systemu Windows zostały zmodyfikowane, aby już nie dodawać lokalizacji hosta Program Files (x86)\dotnet do PATH zmiennej środowiskowej w 64-bitowych systemach Windows.

W związku z tą zmianą, jeśli lokalizacja hosta x86 została dodana do PATH przez poprzednią wersję platformy .NET, wersje x86 instalatorów i aktualizacje .NET usuną ją podczas uaktualnienia.

Ta zmiana dotyczy platformy .NET Core 3.1, .NET 6, .NET 7 i przyszłych wersji.

Ta zmiana dotyczy tylko dotnet hosta. Nie ma to wpływu na 32-bitowe/x86 hosty aplikacji, takie jak myapp.exe. Te hosty będą nadal prawidłowo znajdować środowisko uruchomieniowe x86 (przy założeniu, że jest zainstalowane).

Poprzednie zachowanie

Lokalizacja hosta x86 została dodana do PATH, nawet w systemach x64/Arm64. W zależności od tego, który instalator architektury .NET został uruchomiony jako pierwszy, komputer użytkownika może mieć natywny (x64/Arm64) lub x86 host wymieniony pierwszy w PATH.

Nowe zachowanie

W przyszłości lokalizacja hosta x86 jest dodawana tylko do PATH zmiennej środowiskowej w systemach x86 i zostanie usunięta podczas uaktualniania platformy .NET lub programu Visual Studio w dowolnych systemach x64 i arm64.

Wersja wprowadzona

.NET 7

Przyczyna zmiany

Obecnie lokalizacja hosta x86 jest dodawana do PATH, nawet w systemach x64/Arm64. W zależności od tego, który instalator architektury .NET jest uruchamiany jako pierwszy, komputer użytkownika może mieć natywną (x64/Arm64) lub hosta x86 jako pierwszą lokalizację na PATH liście. Ta niejednoznaczność powoduje problemy z początkową instalacją platformy .NET i zdarzeniami obsługi platformy .NET. Każdy z tych scenariuszy instalacji może modyfikować kolejność hostów platformy .NET w PATH, co czyni go nieokreślonym. Istnieje duże prawdopodobieństwo regresji zachowania środowiska uruchomieniowego platformy .NET.

Ta zmiana usprawnia dotnet doświadczenie hosta na 64-bitowych systemach Windows. Tylko 64-bitowe hosty będą dostępne w zmiennej środowiskowej systemu PATH : hosta x64 w systemach x64 i hoście Arm64 w systemach Arm64. Usunęliśmy niejednoznaczność w kolejności hostów dotnet w PATH, i teraz będzie obecny tylko jeden host.

Jeśli potrzebujesz hosta x86 w zmiennej PATH środowiskowej w systemach x64/Arm64, dodaj ścieżkę dostępu do hosta do PATH ręcznie.

Interfejsy API, których dotyczy problem

Żaden.