Environment.OSVersion doğru işletim sistemi sürümünü döndürür

Environment.OSVersion uygulama uyumluluğu için seçilen işletim sistemi yerine işletim sisteminin (OS) gerçek sürümünü döndürür.

Açıklama değiştirildi

Önceki .NET sürümlerinde, Environment.OSVersion bir uygulama Windows uyumluluk modu altında çalıştığında hatalı olabilecek bir işletim sistemi sürümü döndürür. Daha fazla bilgi için bkz . GetVersionExA işlev açıklamaları. macOS'ta, Environment.OSVersion temel alınan Darwin çekirdek sürümünü döndürür.

.NET 5'den başlayarak, Environment.OSVersion Windows ve macOS için işletim sisteminin gerçek sürümünü döndürür.

Aşağıdaki tabloda davranış farkı gösterilmektedir.

Önceki .NET sürümleri .NET 5+
Windows 6.2.9200.0 10.0.19042.0
macOS 19.6.0.0 10.15.7

Değişiklik nedeni

Bu özelliğin kullanıcıları, işletim sisteminin gerçek sürümünü döndürmesini bekler. Çoğu .NET uygulaması, uygulama bildirimlerinde desteklenen sürümlerini belirtmez ve bu nedenle dotnet ana bilgisayarından varsayılan desteklenen sürümü alır. Sonuç olarak, uyumluluk dolgusu çalışan uygulama için nadiren anlamlıdır. Windows yeni bir sürüm yayınladığında ve eski bir dotnet konağı hala kullanımda olduğunda, bu uygulamalar yanlış bir işletim sistemi sürümü alabilir. Gerçek sürümü döndürmek, geliştiricilerin bu API'den beklentileriyle daha satır içidir.

.NET 5'te Environment.OSVersion , OperatingSystem.IsMacOSVersionAtLeastve System.Runtime.Versioning.SupportedOSPlatformAttribute girişleriyleOperatingSystem.IsWindowsVersionAtLeast, Windows ve macOS için tutarlı olacak şekilde değiştirildi.

Sürüm kullanıma sunulmuştur

5.0

İstenildiği gibi davrandığından emin olmak için kullanan Environment.OSVersion tüm kodları gözden geçirin ve test edin.

Etkilenen API’ler