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
Zalecana akcja
Przejrzyj i przetestuj dowolny kod, którego używa Environment.OSVersion , aby upewnić się, że działa zgodnie z potrzebami.
Dotyczy interfejsów API
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla