RuntimeIdentifier, çalışma zamanının oluşturulduğu platformu döndürür
RuntimeInformation.RuntimeIdentifier çalışma zamanında hesaplanan bir değer yerine çalışma zamanının oluşturulduğu platformu döndürür.
Önceki davranış
Değer, işletim sistemi dosyaları veya API'ler aracılığıyla hesaplanan bir çalışma zamanı tanımlayıcısı (RID) idi. Bu genellikle sürüme özgü ve dağıtıma özgü bir RID olduğu anlamına geliyordu. Örneğin, Bir uygulamayı Windows 11'de çalıştırırken değeri win10-x64
veya Ubuntu 20.04'te olabilir ubuntu.20.04-x64
.
Yeni davranış
.NET 8'den başlayarak, değer çalışma zamanının oluşturulduğu RID değeridir. Bu, çalışma zamanının taşınabilir derlemeleri (Microsoft tarafından sağlanan tüm derlemeler) için değerin sürüme özgü ve dağıtıma özgü olmayan olduğu anlamına gelir. Örneğin, Windows 11'de değeri ve win-x64
Ubuntu 20.04'te ise değeridir linux-x64
. Taşınabilir olmayan derlemeler için (kaynak derleme), derleme sürümü ve dağıtımı olabilecek bir derleme RID'sini ayarlar ve bu değer döndürülen RID'dir.
Sürüm kullanıma sunulmuştur
.NET 8 RC 1
Hataya neden olan değişikliğin türü
Bu değişiklik davranışsal bir değişikliktir.
Değişiklik nedeni
Bu değişiklik, RID'ye özgü varlık çözümlemesine yapılan .NET 8 değişikliğine ve distro-aware çalışma zamanından uzaklaşmaya göre değişir. RuntimeInformation.RuntimeIdentifier , konağın veya çalışma zamanının kendisini çalışıyor olarak kabul ettiği platformu temsil etmesi gereken opak bir değerdir. .NET 8'de bu, çalışma zamanında hesaplanan bir RID yerine konağın veya çalışma zamanının oluşturulduğu platforma karşılık gelir.
Önerilen eylem
RuntimeInformation.RuntimeIdentifier opak bir değerdir ve bileşen parçalarına ayrıştırılmak üzere tasarlanmamıştır. Bir uygulamanın üzerinde çalıştığı gerçek makinenin işletim sistemi sürümü için kullanın Environment.OSVersion. Açıklama için kullanın RuntimeInformation.OSDescription. Linux'ta belirli bir kimlik (dağıtım) ve ilgili sürüm için os-release dosyasını okuyabilirsiniz.