Funkcja Environment.OSVersion zwraca poprawną wersję systemu operacyjnego

Environment.OSVersion Zwraca rzeczywistą wersję systemu operacyjnego zamiast systemu operacyjnego, na przykład system operacyjny wybrany pod kątem zgodności aplikacji.

Opis zmiany

W poprzednich wersjach platformy .NET zwraca wersję systemu operacyjnego, Environment.OSVersion która może być niepoprawna, gdy aplikacja działa w trybie zgodności systemu Windows. Aby uzyskać więcej informacji, zobacz Uwagi dotyczące funkcji GetVersionExA. W systemie macOS Environment.OSVersion zwraca podstawową wersję jądra Darwin.

Począwszy od platformy .NET 5, Environment.OSVersion zwraca rzeczywistą wersję systemu operacyjnego dla systemów Windows i macOS.

W poniższej tabeli przedstawiono różnicę w zachowaniu.

Poprzednie wersje platformy .NET .NET 5+
Windows 6.2.9200.0 10.0.19042.0
macOS 19.6.0.0 10.15.7

Przyczyna wprowadzenia zmiany

Użytkownicy tej właściwości oczekują, że zwróci rzeczywistą wersję systemu operacyjnego. Większość aplikacji platformy .NET nie określa obsługiwanej wersji w manifeście aplikacji, a tym samym uzyskuje domyślną obsługiwaną wersję z hosta dotnet. W związku z tym podkładka zgodności rzadko ma znaczenie dla uruchomionej aplikacji. Gdy system Windows wyda nową wersję, a starszy host dotnet jest nadal używany, te aplikacje mogą uzyskać niepoprawną wersję systemu operacyjnego. Zwracanie rzeczywistej wersji jest bardziej wbudowane dzięki oczekiwaniom deweloperów na ten interfejs API.

Wraz z wprowadzeniem elementów OperatingSystem.IsWindowsVersionAtLeast, OperatingSystem.IsMacOSVersionAtLeasti System.Runtime.Versioning.SupportedOSPlatformAttribute na platformie .NET 5 Environment.OSVersion zmieniono spójność dla systemów Windows i macOS.

Wprowadzona wersja

5,0

Przejrzyj i przetestuj dowolny kod, którego używa Environment.OSVersion , aby upewnić się, że działa zgodnie z potrzebami.

Dotyczy interfejsów API