Aracılığıyla paylaş


.NET 5'te hataya neden olan değişiklikler

Bir uygulamayı .NET 5'e geçiş yapıyorsanız, burada listelenen önemli değişiklikler sizi etkileyebilir. Değişiklikler ASP.NET Core veya şifreleme gibi teknoloji alanına göre gruplandırılır.

Bu makalede, her hataya neden olan değişikliğin ikili uyumlu mu yoksa kaynak uyumlu mu olduğu gösterilir:

  • İkili uyumlu - Mevcut ikili dosyalar yeniden derleme olmadan başarıyla yüklenip yürütülür ve çalışma zamanı davranışı değişmez.
  • Kaynak uyumlu - Kaynak kodu, yeni çalışma zamanını hedeflerken veya yeni SDK veya bileşen kullanılırken değişiklik olmadan başarıyla derlenir.

ASP.NET Çekirdeği

Bkz . ASP.NET Core 5'teki önemli değişiklikler.

Kod analizi

Başlık İkili uyumlu Kaynak uyumlu
CA1416 uyarısı ✔️
CA1417 uyarısı ✔️
CA1831 uyarısı ✔️
CA2013 uyarısı ✔️
CA2014 uyarısı ✔️
CA2015 uyarısı ✔️
CA2200 uyarısı ✔️
CA2247 uyarısı ✔️

Çekirdek .NET kitaplıkları

Başlık İkili uyumlu Kaynak uyumlu
Tek dosyalı yayımlama için derlemeyle ilgili API değişiklikleri ✔️
BinaryFormatter serileştirme yöntemleri kullanımdan kaldırıldı ✔️
Kod erişimi güvenlik API'leri kullanımdan kaldırıldı ✔️
CreateCounterSetInstance InvalidOperationException oluşturuyor ✔️
Varsayılan ActivityIdFormat W3C'dir ✔️
Environment.OSVersion doğru sürümü döndürür ✔️
FrameworkDescription'ın değeri .NET Core değil .NET'tir ✔️
GAC API'leri kullanımdan kaldırıldı ✔️
Donanım iç IsSupported denetimleri ✔️
IntPtr ve UIntPtr, IFormattable'ı uygular ✔️
LastIndexOf boş arama dizelerini işler ✔️
Unix'te ASCII olmayan karakterler içeren URI yolları ✔️
Varsayılan olmayan tanılama kimlikleriyle API ✔️
ConsoleLoggerOptions'ta eski özellikler ✔️
LINQ OrderBy.First Metodunun Karmaşıklığı ✔️
OSPlatform öznitelikleri yeniden adlandırıldı veya kaldırıldı ✔️
Microsoft.DotNet.PlatformAbstractions paketi kaldırıldı ✔️
PrincipalPermissionAttribute kullanımdan kaldırıldı ✔️
Önizleme sürümlerindeki parametre adı değişiklikleri ✔️
Referans derlemelerindeki parametre adı değişiklikleri ✔️
Uzaktan iletişim API'leri kullanımdan kaldırıldı ✔️
Activity.Tags listesinin sırası tersine çevrildi ✔️
SSE ve SSE2 karşılaştırma yöntemleri NaN'i işler ✔️
Thread.Abort kullanımdan kaldırıldı ✔️
Unix'te UNC yollarının Uri tanıması ✔️
UTF-7 kod yolları kullanımdan kaldırıldı ✔️
Vector2.Lerp ve Vector4.Lerp için davranış değişikliği ✔️
Vektör<T> NotSupportedException oluşturur ✔️

Şifreleme

Başlık İkili uyumlu Kaynak uyumlu
Şifreleme API'leri tarayıcıda desteklenmiyor ✔️
Cryptography.Oid yalnızca başlangıçta ayarlanabilir ✔️
Linux'ta varsayılan TLS şifreleme paketleri ✔️
Şifreleme soyutlamalarında Create() aşırı yüklemeleri kullanımdan kaldırıldı ✔️
Varsayılan Geri BildirimDize değeri değiştirildi ✔️

Entity Framework Core (Varlık Çerçevesi Çekirdeği)

Bkz EF Core 5.0'deki önemli değişiklikler.

Küreselleşme

Başlık İkili uyumlu Kaynak uyumlu
Windows'da ICU kitaplıklarını kullanma ✔️
StringInfo ve TextElementEnumerator UAX29 uyumlu ✔️
Latin-1 karakterleri için Unicode kategorisi değiştirildi ✔️
TextInfo.ListSeparator değerleri değiştirildi ✔️

Birlikte Çalışma

Başlık İkili uyumlu Kaynak uyumlu
WinRT desteği kaldırıldı ✔️
RCW'yi InterfaceIsIInspectable'a çevirmek istisna fırlatır ✔️
Windows dışı platformlarda A/W soneki sorgusu yapılmaz ✔️

Ağ Kurma

Başlık İkili uyumlu Kaynak uyumlu
RFC 6265 ile uyumlu olan çerez yolu işleme ✔️
SendToAsync çağrıldıktan sonra LocalEndPoint güncelleştirildi ✔️
MulticastOption.Group null değeri kabul etmiyor ✔️
Akışlar birbirini izleyen Begin işlemlerine izin verir ✔️
WinHttpHandler .NET çalışma zamanından kaldırıldı ✔️

SDK

Başlık İkili uyumlu Kaynak uyumlu
Varsayılan olarak içeri aktarılan Directory.Packages.props dosyaları ✔️
Yürütülebilir proje, uyumsuz yürütülebilir dosyayı referans aldığında hata oluştu ✔️
FrameworkReference, Windows SDK için WindowsSdkPackageVersion ile değiştirildi ✔️
NETCOREAPP3_1 ön işlemci simgesi tanımlanmadı ✔️
OutputType WinExe olarak ayarlandı ✔️
PublishDepsFilePath davranış değişikliği ✔️
Netcoreapp'ten net'e TargetFramework değişikliği ✔️
WinForms ve WPF uygulamaları Microsoft.NET.Sdk kullanır ✔️

Güvenlik

Başlık İkili uyumlu Kaynak uyumlu
Kod erişimi güvenlik API'leri kullanımdan kaldırıldı ✔️
PrincipalPermissionAttribute kullanımdan kaldırıldı ✔️
UTF-7 kod yolları kullanımdan kaldırıldı ✔️

Seri -leştirme

Başlık İkili uyumlu Kaynak uyumlu
BinaryFormatter.Deserialize istisnaları yeniden paketler ✔️
JsonSerializer.Deserialize için tek karakterli dize gerekir ✔️
ASP.NET Core uygulamaları, tırnak işaretli sayıları seri hale getiriyor ✔️
JsonSerializer.Serialize, ArgumentNullException oluşturur ✔️
Deserileştirme için kullanılmayan, genel olmayan parametresiz oluşturucular ✔️
Anahtar-değer çiftleri seri hale getirilirken seçeneklere dikkat edilir ✔️

Windows Forms

Başlık İkili uyumlu Kaynak uyumlu
Yerel kod Windows Forms nesnelerine erişemiyor ✔️
OutputType WinExe olarak ayarlandı ✔️
DataGridView özel yazı tiplerini sıfırlamaz ✔️
Yöntemler ArgumentException oluşturur ✔️
Yöntemler ArgumentNullException oluşturur ✔️
Özellikler ArgumentOutOfRangeException oluşturur ✔️
TextFormatFlags.ModifyString kullanımdan kaldırıldı ✔️
DataGridView API'leri InvalidOperationException oluşturur ✔️
WinForms uygulamaları Microsoft.NET.Sdk kullanır ✔️
Durum çubuğu denetimleri kaldırıldı ✔️

WPF (Windows Presentation Foundation)

Başlık İkili uyumlu Kaynak uyumlu
OutputType WinExe olarak ayarlandı ✔️
WPF uygulamaları Microsoft.NET.Sdk kullanır ✔️

Ayrıca bakınız