Environment.OSVersion vrátí správnou verzi operačního systému.

Environment.OSVersion vrátí skutečnou verzi operačního systému (OS) místo operačního systému vybraného pro kompatibilitu aplikací.

Změna popisu

V předchozích verzích .NET vrátí verzi operačního systému, Environment.OSVersion která může být nesprávná, když aplikace běží v režimu kompatibility Windows. Další informace naleznete v tématu GetVersionExA poznámky funkce. V systému macOS Environment.OSVersion vrátí základní verzi jádra Darwin.

Počínaje rozhraním .NET 5 Environment.OSVersion vrátí skutečnou verzi operačního systému pro Windows a macOS.

Následující tabulka ukazuje rozdíl v chování.

Předchozí verze .NET .NET 5 nebo novější
Windows 6.2.9200.0 10.0.19042.0
macOS 19.6.0.0 10.15.7

Důvod změny

Uživatelé této vlastnosti očekávají, že vrátí skutečnou verzi operačního systému. Většina aplikací .NET nezadá v manifestu aplikace podporovanou verzi, a proto z hostitele dotnet získá výchozí podporovanou verzi. V důsledku toho je pro spuštěnou aplikaci zřídka smysluplné překrytí kompatibility. Když Systém Windows vydá novou verzi a staršího hostitele dotnet se stále používá, můžou tyto aplikace získat nesprávnou verzi operačního systému. Vrácení skutečné verze je více v souladu s očekáváními vývojářů tohoto rozhraní API.

Po zavedení OperatingSystem.IsWindowsVersionAtLeastnástroje , OperatingSystem.IsMacOSVersionAtLeasta System.Runtime.Versioning.SupportedOSPlatformAttribute v .NET 5 byla změněna tak, Environment.OSVersion aby byla konzistentní pro Windows a macOS.

Zavedená verze

5,0

Zkontrolujte a otestujte veškerý kód, který ho používá Environment.OSVersion , aby se zajistilo, že se chová podle potřeby.

Ovlivněná rozhraní API