Megosztás a következőn keresztül:


Az Environment.OSVersion az operációs rendszer megfelelő verzióját adja vissza

Environment.OSVersion Az operációs rendszer (OS) tényleges verzióját adja vissza például az alkalmazáskompatibilitáshoz kiválasztott operációs rendszer helyett.

Módosítás leírása

A korábbi .NET-verziókban olyan operációsrendszer-verziót ad vissza, Environment.OSVersion amely helytelen lehet, ha egy alkalmazás Windows kompatibilitási módban fut. További információ: GetVersionExA függvény megjegyzései. MacOS Environment.OSVersion rendszeren az alapul szolgáló Darwin kernelverziót adja vissza.

A .NET 5-től Environment.OSVersion kezdődően a Windows és macOS operációs rendszer tényleges verzióját adja vissza.

Az alábbi táblázat a viselkedésbeli különbséget mutatja be.

Korábbi .NET-verziók .NET 5+
Windows 6.2.9200.0 10.0.19042.0
macOS 19.6.0.0 10.15.7

A változás oka

A tulajdonság felhasználói elvárják, hogy az operációs rendszer tényleges verzióját adja vissza. A legtöbb .NET-alkalmazás nem adja meg a támogatott verziót az alkalmazásjegyzékben, ezért az alapértelmezett támogatott verziót a dotnet-gazdagépről kapja meg. Ennek eredményeképpen a kompatibilitási shim ritkán értelmezhető a futó alkalmazás számára. Ha a Windows új verziót ad ki, és egy régebbi dotnet-gazdagép még használatban van, előfordulhat, hogy ezek az alkalmazások helytelen operációsrendszer-verziót kapnak. A tényleges verzió visszaadása jobban megfelel az API fejlesztői elvárásainak.

A .NET 5 Environment.OSVersion bevezetésekor OperatingSystem.IsWindowsVersionAtLeastOperatingSystem.IsMacOSVersionAtLeasta windowsos és System.Runtime.Versioning.SupportedOSPlatformAttribute macOS rendszereken konzisztens lett.

Bevezetett verzió

5,0

Tekintse át és tesztelje azokat a kódot, amelyek biztosítják, hogy Environment.OSVersion a kód a kívánt módon viselkedjen.

Érintett API-k