OSPlatform öznitelikleri yeniden adlandırıldı veya kaldırıldı

.NET 5 Preview 8'de sunulan aşağıdaki öznitelikler kaldırıldı veya yeniden adlandırıldı: MinimumOSPlatformAttribute, RemovedInOSPlatformAttributeve ObsoletedInOSPlatformAttribute.

Açıklama değiştirildi

.NET 5 Preview 8 ad alanında System.Runtime.Versioning aşağıdaki öznitelikleri kullanıma sundu:

  • MinimumOSPlatformAttribute
  • RemovedInOSPlatformAttribute
  • ObsoletedInOSPlatformAttribute

.NET 5 Preview 8'de, bir proje gibi net5.0-windowsbir hedef çerçeve takma adını kullanarak işletim sistemine özgü bir .NET 5 türünü hedeflediğinde, derleme derleme düzeyi System.Runtime.Versioning.MinimumOSPlatformAttribute özniteliği ekler.

.NET 5 RC1'de , ObsoletedInOSPlatformAttribute kaldırıldı ve MinimumOSPlatformAttributeRemovedInOSPlatformAttribute aşağıdaki gibi yeniden adlandırıldı:

Önizleme 8 adı RC1 ve üzeri adı
MinimumOSPlatformAttribute SupportedOSPlatformAttribute
RemovedInOSPlatformAttribute UnsupportedOSPlatformAttribute

.NET 5 RC1 ve sonraki sürümlerde, bir proje gibi net5.0-windowsbir hedef çerçeve adı kullanarak işletim sistemine özgü bir .NET 5 türünü hedeflediğinde, derleme derleme düzeyi SupportedOSPlatformAttribute özniteliği ekler.

Değişiklik nedeni

.NET 5 Preview 8, API'ler için desteklenen platformları belirtmek üzere 'de System.Runtime.Versioning öznitelikleri kullanıma sundu. Öznitelikler, platforma özgü API'ler bu API'leri desteklemeyen platformlarda kullanıldığında derleme uyarıları oluşturmak için Platform uyumluluk çözümleyicisi tarafından kullanılır.

.NET 5 RC1 için, platform dışlama için platform uyumluluk çözümleyicisine ek bir özellik eklendi. Bu özellik, API'lerin işletim sistemi platformlarında tamamen desteklenmeyen olarak işaretlenmesini sağlar. Bu özellik, daha uygun adlar da dahil olmak üzere özniteliklerde değişiklikler istendi. ObsoletedInOSPlatformAttribute artık gerekli olmadığından kaldırıldı.

Sürüm kullanıma sunulmuştur

5.0 RC1

Projenizi .NET 5 Preview 8'den .NET 5 RC1'e yeniden hedeflediğinizde, bu değişikliklerden dolayı derleme veya çalışma zamanı hatalarıyla karşılaşabilirsiniz. Örneğin, özniteliği derleme zamanında platforma özgü derlemelere uygulandığından ve eski derleme yapıtları eski API adına başvurmaya devam edeceğinden, öğesinin yeniden adlandırılması MinimumOSPlatformAttribute hatalara neden olabilir.

Örnek derleme zamanı hataları:

  • hata CS0246: 'MinimumOSPlatformAttribute' türü veya ad alanı adı bulunamadı (using yönergesi veya derleme başvurusu eksik mi?)
  • hata CS0246: 'RemovedInOSPlatformAttribute' türü veya ad alanı adı bulunamadı (using yönergesi veya derleme başvurusu eksik mi?)
  • hata CS0246: 'ObsoletedInOSPlatformAttribute' türü veya ad alanı adı bulunamadı (using yönergesi veya derleme başvurusu eksik mi?)

Örnek çalışma zamanı hatası:

İşlenmeyen özel durum. System.TypeLoadException: 'System.Runtime, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' derlemesinden 'System.Runtime.Versioning.MinimumOSPlatformAttribute' türü yüklenemedi.

Bu hataları çözmek için:

  • için tüm başvurularını MinimumOSPlatformAttributeSupportedOSPlatformAttributegüncelleştirin.
  • için tüm başvurularını RemovedInOSPlatformAttributeUnsupportedOSPlatformAttributegüncelleştirin.
  • tüm başvurularını ObsoletedInOSPlatformAttributekaldırın.
  • Eski derleme yapıtlarını silmek için projenizi yeniden oluşturun (veya temiz + derleme gerçekleştirin).

Etkilenen API’ler

  • System.Runtime.Versioning.MinimumOSPlatformAttribute
  • System.Runtime.Versioning.ObsoletedInOSPlatformAttribute
  • System.Runtime.Versioning.RemovedInOSPlatformAttribute