Environment.OSVersion retourneert de juiste versie van het besturingssysteem
Environment.OSVersion retourneert de werkelijke versie van het besturingssysteem (OS) in plaats van bijvoorbeeld het besturingssysteem dat is geselecteerd voor toepassingscompatibiliteit.
Wijzigingsbeschrijving
In eerdere .NET-versies Environment.OSVersion wordt een versie van het besturingssysteem geretourneerd die mogelijk onjuist is wanneer een toepassing wordt uitgevoerd in de compatibiliteitsmodus van Windows. Zie opmerkingen van de functie GetVersionExA voor meer informatie. In macOS Environment.OSVersion wordt de onderliggende Darwin-kernelversie geretourneerd.
Vanaf .NET 5 wordt Environment.OSVersion de werkelijke versie van het besturingssysteem voor Windows en macOS geretourneerd.
In de volgende tabel ziet u het verschil in gedrag.
Vorige .NET-versies | .NET 5+ | |
---|---|---|
Windows | 6.2.9200.0 | 10.0.19042.0 |
MacOS | 19.6.0.0 | 10.15.7 |
Reden voor wijziging
Gebruikers van deze eigenschap verwachten dat deze de werkelijke versie van het besturingssysteem retourneert. De meeste .NET-apps geven hun ondersteunde versie niet op in hun toepassingsmanifest en krijgen dus de standaard ondersteunde versie van de dotnet-host. Als gevolg hiervan is de compatibiliteitss-shim zelden zinvol voor de app die wordt uitgevoerd. Wanneer Windows een nieuwe versie publiceert en een oudere dotnet-host nog steeds in gebruik is, krijgen deze apps mogelijk een onjuiste versie van het besturingssysteem. Het retourneren van de werkelijke versie is meer inline met de verwachtingen van ontwikkelaars van deze API.
Met de introductie van OperatingSystem.IsWindowsVersionAtLeast, OperatingSystem.IsMacOSVersionAtLeasten System.Runtime.Versioning.SupportedOSPlatformAttribute in .NET 5, Environment.OSVersion is gewijzigd in consistent voor Windows en macOS.
Versie geïntroduceerd
5,0
Aanbevolen actie
Controleer en test alle code die wordt gebruikt Environment.OSVersion om ervoor te zorgen dat deze zich naar wens gedraagt.
Betrokken API's
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor