Tanımlayıcı ad API'leri PlatformNotSupportedException oluşturur
.NET/.NET Core'da desteklenmeyen ancak erişildiğinde hiçbir şey yapmayan birkaç API artık çalışma zamanında oluşturacak şekilde PlatformNotSupportedException değiştirildi. Daha önce, bu API'lerin kullanılması daha sonra bir çalışma zamanı özel durumuyla sonuçlanırdı; türü örneği oluşturulurken veya ilk kez erişildiğinde artık özel durum oluşturulur.
Önceki davranış
Önceki sürümlerde, çağrılır AssemblyName.KeyPair veya StrongNameKeyPair(Byte[]) iş yapılmazdı. Çağrısı StrongNameKeyPair(FileStream) akışı okur ancak aksi takdirde hiçbir şey yapmadı.
Yeni davranış
.NET 6'dan başlayarak, etkilenen üç API'nin her biri çalışma zamanında bir PlatformNotSupportedException oluşturur.
Sürüm kullanıma sunulmuştur
.NET 6
Hataya neden olan değişikliğin türü
Bu değişiklik ikili uyumluluğu etkileyebilir.
Değişiklik nedeni
Daha önce API'yi çağıran bir uygulama derlenip çalıştırılıyordu, ancak örnek herhangi bir kod yolunda kullanılır kullanılmaz bir çalışma zamanı özel durumu oluşturmuştu. Bu senaryonun desteklenmediğini daha açık hale getirmek için özel durum oluşturma mantığı örnek oluşturucusuna taşındı. Hiçbir örnek oluşturulmazsa, bu türü döndüren genel giriş noktalarında da özel durum oluşturulur. AssemblyName.KeyPair
Önerilen eylem
.NET/.NET Core'da tanımlayıcı ad imzalama desteklenmez ve geçici çözüm yoktur.
Not
.NET Core/5+ çalışma zamanında imzaları hiçbir zaman denetlemez. Ancak, platformlar arası kitaplıkları (örneğin, .NET Standard 2.0'ı hedefleyen temel bir kimlik doğrulama paketi) hedef alıyorsanız, .NET Framework'te de çalıştırılırsa, kesin adlandırma çalışma zamanı arası uyumluluk için iyi bir fikirdir. .NET Framework, çağıran uygulama tanımlayıcı olarak adlandırılmışsa güçlü adlandırmayı zorlamaya devam eder. Sn.exe aracını kullanarak .NET'in tüm sürümlerinde derlemeleri tanımlayıcı adla adlandırabilirsiniz. Daha fazla bilgi için bkz . Tanımlayıcı ad imzalama.