Environment.OSVersion mengembalikan versi sistem operasi yang benar
Environment.OSVersion mengembalikan versi aktual sistem operasi (OS) alih-alih, misalnya, OS yang dipilih untuk kompatibilitas aplikasi.
Deskripsi perubahan
Dalam versi .NET sebelumnya, Environment.OSVersion mengembalikan versi OS yang mungkin salah saat aplikasi berjalan di bawah mode kompatibilitas Windows. Untuk informasi selengkapnya, lihat Komentar fungsi GetVersionExA. Di macOS, Environment.OSVersion mengembalikan versi kernel Darwin yang mendasar.
Mulai dari .NET 5, Environment.OSVersion mengembalikan versi aktual sistem operasi untuk Windows dan macOS.
Tabel berikut ini memperlihatkan perbedaan perilaku.
Versi .NET sebelumnya | .NET 5+ | |
---|---|---|
Windows | 6.2.9200.0 | 10.0.19042.0 |
macOS | 19.6.0.0 | 10.15.7 |
Alasan untuk berubah
Pengguna properti ini mengharapkannya untuk mengembalikan versi aktual sistem operasi. Sebagian besar aplikasi .NET tidak menentukan versi yang didukung dalam manifes aplikasi mereka, dan dengan demikian mendapatkan versi default yang didukung dari host dotnet. Akibatnya, shim kompatibilitas jarang bermakna untuk aplikasi yang berjalan. Ketika Windows merilis versi baru dan host dotnet yang lebih lama masih digunakan, aplikasi ini mungkin mendapatkan versi OS yang salah. Mengembalikan versi aktual lebih sejalan dengan ekspektasi pengembang terhadap API ini.
Dengan pengenalan OperatingSystem.IsWindowsVersionAtLeast, , OperatingSystem.IsMacOSVersionAtLeastdan System.Runtime.Versioning.SupportedOSPlatformAttribute di .NET 5, Environment.OSVersion diubah menjadi konsisten untuk Windows dan macOS.
Versi yang diperkenalkan
5.0
Tindakan yang direkomendasikan
Tinjau dan uji kode apa pun yang menggunakan Environment.OSVersion untuk memastikan kode tersebut berulah sesuai keinginan.
API yang Terpengaruh
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk