Aracılığıyla paylaş


.NET 8'de hataya neden olan değişiklikler

Bir uygulamayı .NET 8'e geçiriyorsanız, burada listelenen hataya neden olan değişiklikler sizi etkileyebilir. Değişiklikler, ASP.NET Core veya Windows Forms gibi teknoloji alanına göre gruplandırılır.

Bu makalede, her hataya neden olan değişiklik ikili uyumsuz veya kaynak uyumsuz ya da davranış değişikliği olarak kategorilere ayrılmıştır:

  • İkili uyumsuz - Yeni çalışma zamanına veya bileşene karşı çalıştırıldığında, mevcut ikili dosyalar yüklenemiyor veya yürütülemedi gibi hataya neden olan bir davranış değişikliğiyle karşılaşabilir ve bu durumda yeniden derleme gerekir.

  • Kaynak uyumsuz - Yeni SDK veya bileşen kullanılarak veya yeni çalışma zamanını hedeflemek için yeniden derlendiğinde, mevcut kaynak kodun başarıyla derlenebileceği kaynak değişiklikleri gerekebilir.

  • Davranış değişikliği - Var olan kod ve ikili dosyalar çalışma zamanında farklı davranabilir. Yeni davranış istenmeyen bir davranışsa mevcut kodun güncelleştirilip yeniden derlenmesi gerekir.

ASP.NET Core

Başlık Değişiklik türü
ConcurrencyLimiterMiddleware kullanımdan kaldırıldı Kaynak uyumsuz
Serileştirme için özel dönüştürücüler kaldırıldı Davranış değişikliği
ISystemClock kullanımdan kaldırıldı Kaynak uyumsuz
Minimum API'ler: IFormFile parametreleri sahteciliği önleme denetimleri gerektirir Davranış değişikliği
Hız sınırlama ara yazılımı AddRateLimiter gerektirir Davranış değişikliği
Güvenlik belirteci olayları bir JsonWebToken döndürür Davranış değişikliği
TrimMode, Web SDK projeleri için varsayılan olarak tam olarak ayarlanır Kaynak uyumsuz

Kapsayıcılar

Başlık Değişiklik türü
Alp görüntülerinden 'ca-certificates' paketi kaldırıldı İkili uyumsuz
Debian 12'ye yükseltilen Debian kapsayıcı görüntüleri İkili uyumsuz/davranışsal değişiklik
Varsayılan ASP.NET Çekirdek bağlantı noktası 8080 olarak değiştirildi Davranış değişikliği
Kerberos paketi Alpine ve Debian görüntülerinden kaldırıldı İkili uyumsuz
Alp görüntülerinden 'libintl' paketi kaldırıldı Davranış değişikliği
Çok platformlu kapsayıcı etiketleri yalnızca Linux'tır Davranış değişikliği
Linux görüntülerinde yeni 'uygulama' kullanıcısı Davranış değişikliği

Core .NET kitaplıkları

Başlık Değişiklik türü
Null olduğunda etkinlik işlemi adı Davranış değişikliği
AnonymousPipeServerStream.Dispose davranışı Davranış değişikliği
Özel tanılama kimlikleriyle API obsoletions Kaynak uyumsuz
Unix dosya yollarında ters eğik çizgi eşlemesi Davranış değişikliği
Base64.DecodeFromUtf8 yöntemleri boşluğu yoksayar Davranış değişikliği
Boole destekli sabit listesi türü desteği kaldırıldı Davranış değişikliği
Complex.ToString biçimi olarak değiştirildi <a; b> Davranış değişikliği
Sürücünün geçerli dizin yolu numaralandırması Davranış değişikliği
Enumerable.Sum bazı girişler için yeni OverflowException oluşturur Davranış değişikliği
Kanal kapatıldığında FileStream yazar Davranış değişikliği
FindSystemTimeZoneById yeni nesne döndürmüyor Davranış değişikliği
GC. GetGeneration, Int32.MaxValue döndürebilir Davranış değişikliği
Unix'te GetFolderPath davranışı Davranış değişikliği
GetSystemVersion artık ImageRuntimeVersion döndürüyor Davranış değişikliği
ITypeDescriptorContext null atanabilir ek açıklamalar Kaynak uyumsuz
Eski Konsol.ReadKey kaldırıldı Davranış değişikliği
Yöntem oluşturucuları HasDefaultValue değeri false olarak ayarlanmış parametreler oluşturur Davranış değişikliği
UseShellExecute false olduğunda ProcessStartInfo.WindowStyle kabul edildi Davranış değişikliği
RuntimeIdentifier, çalışma zamanının oluşturulduğu platformu döndürür Davranış değişikliği
Type.GetType tüm geçersiz öğe türleri için özel durum oluşturur Davranış değişikliği

Şifreleme

Başlık Değişiklik türü Sunulan özellikler
macOS'ta AesGcm kimlik doğrulama etiketi boyutu Davranış değişikliği Önizleme 1
RSA. EncryptValue ve RSA. DecryptValue kullanımdan kaldırıldı Kaynak uyumsuz Önizleme 1

Dağıtım

Başlık Değişiklik türü
Ana bilgisayar RID'ye özgü varlıkları belirler İkili uyumsuz/davranışsal değişiklik
.NET İzleyici yalnızca distroless görüntüler içerir Davranış değişikliği
StripSymbols varsayılan değeri true Davranış değişikliği

Entity Framework Core

EF Core 8'de hataya neden olan değişiklikler

Uzantıları

Başlık Değişiklik türü
ActivatorUtilities.CreateInstance tutarlı bir şekilde davranır Davranış değişikliği
ActivatorUtilities.CreateInstance null olmayan sağlayıcı gerektirir Davranış değişikliği
Eşleşmeyen değer için ConfigurationBinder atar Davranış değişikliği
ConfigurationManager paketi artık System.Security.Permissions'e başvuramıyor Kaynak uyumsuz
DirectoryServices paketi artık System.Security.Permissions'e başvuramıyor Kaynak uyumsuz
Yapılandırma bağlayıcısı tarafından sözlüğe eklenen boş anahtarlar Davranış değişikliği
HostApplicationBuilder ctor tarafından kabul edilen HostApplicationBuilderSettings.Args Davranış değişikliği
ManagementDateTimeConverter.ToDateTime bir yerel saat döndürür Davranış değişikliği
System.Formats.Cbor DateTimeOffset biçimlendirme değişikliği Davranış değişikliği

Globalleştirme

Başlık Değişiklik türü
Tarih ve saat dönüştürücüleri kültür bağımsız değişkenlerini kabul eder Davranış değişikliği
TwoDigitYearMax varsayılan değeri 2049'dur Davranış değişikliği

Interop

Başlık Değişiklik türü
CreateObjectFlags.Unwrap yalnızca hedef örnekteki unwraps Davranış değişikliği
Özel marshallers için ek üye gerekiyor Kaynak uyumsuz
IDispatchImplAttribute API kaldırıldı İkili uyumsuz
JSFunctionBinding örtük genel varsayılan oluşturucu kaldırıldı İkili uyumsuz
SafeHandle türlerinin ortak oluşturucuya sahip olması gerekir Kaynak uyumsuz

Başlık Değişiklik türü
SendFile, bağlantısız yuvalar için NotSupportedException oluşturur Davranış değişikliği
URI'lerdeki mailto: kullanıcı bilgileri karşılaştırılır Davranış değişikliği

Yansıma

Başlık Değişiklik türü
IntPtr artık işlev işaretçisi türleri için kullanılmıyor Davranış değişikliği

SDK

Başlık Değişiklik türü
CLI konsol çıkışı UTF-8 kullanıyor Davranış değişikliği/Kaynak ve ikili uyumsuz
Tamamlandıktan sonra konsol kodlaması UTF-8 değil Davranış değişikliği/İkili uyumsuz
Kapsayıcılar varsayılan olarak 'en son' etiketini kullanır Davranış değişikliği
'dotnet pack' Sürüm yapılandırmasını kullanır Davranış değişikliği/Kaynak uyumsuz
'dotnet publish' sürüm yapılandırmasını kullanır Davranış değişikliği/Kaynak uyumsuz
-getItem, -getProperty ve -getTargetResult için yinelenen çıkış Davranış değişikliği
System.Net.Http için örtük using artık eklenmedi Davranış değişikliği/Kaynak uyumsuz
MSBuild özel türetilmiş derleme olayları kullanım dışı bırakıldı Davranış değişikliği
MSBuild, DOTNET_CLI_UI_LANGUAGE saygıyla karşılar Davranış değişikliği
Bağımsız olmayan çalışma zamanına özgü uygulamalar Kaynak/ikili uyumsuz
--arch seçeneği kendi içinde olduğu anlamına gelmez Davranış değişikliği
'dotnet restore' güvenlik açığı uyarıları üretir Davranış değişikliği
SDK daha küçük bir RID grafı kullanır Davranış değişikliği/Kaynak uyumsuz
DebugSymbols ayarını false olarak ayarlamak PDB oluşturmayı devre dışı bırakır Davranış değişikliği
.NET SDK'sında bulunan Kaynak Bağlantısı Kaynak uyumsuz
Kırpma .NET Standard veya .NET Framework ile kullanılamaz Davranış değişikliği
.NET araçları için listelenmemiş paketler varsayılan olarak yüklenmedi Davranış değişikliği
Dış derlemelerde içeri aktarılan .user dosyası Davranış değişikliği
.NET 8 SDK için sürüm gereksinimleri Kaynak uyumsuz

Serileştirme

Başlık Değişiklik türü
BinaryFormatter çoğu proje için devre dışı bırakıldı Davranış değişikliği
PublishedTrimmed projeleri yansıma tabanlı serileştirmede başarısız oldu Davranış değişikliği
Yansıma tabanlı seri durumdan çıkarıcı meta verileri hevesle çözümler Davranış değişikliği

Windows Forms

Başlık Değişiklik türü
Yer işareti düzeni değişiklikleri Davranış değişikliği
PictureBox'ta uzak görüntüleri yüklemeden önce denetlenen sertifikalar Davranış değişikliği
DateTimePicker.Text boş dize Davranış değişikliği
DefaultValueAttribute bazı özelliklerden kaldırıldı Davranış değişikliği
ExceptionCollection ctor ArgumentException oluşturur Davranış değişikliği
Formlar Otomatik ÖlçeklendirmeMode'a göre ölçeklendirilir Davranış değişikliği
ImageList.ColorDepth varsayılanı Depth32Bit'tir Davranış değişikliği
System.Windows.Extensions, System.Drawing.Common'a başvurmuyor Kaynak uyumsuz
TableLayoutStyleCollection, ArgumentException oluşturur Davranış değişikliği
Üst düzey formlar minimum ve maksimum boyutu DPI olarak ölçeklendirir Davranış değişikliği
WFDEV002 kullanımdan kaldırılmış olması artık bir hatadır Kaynak uyumsuz

Ayrıca bkz.