Aracılığıyla paylaş


.NET 10'da önemli değişiklikler

Bir uygulamayı .NET 10'a geçiriyorsanız, burada listelenen uyumsuzluktan kaynaklanan 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 kritik değişiklik ikili uyumsuz, kaynak uyumsuz veya davranış değişikliği olarak kategorize edilmiştir:

  • İkili dosya uyumsuzluğu - Yeni çalışma zamanına veya bileşene karşı çalıştırıldığında, mevcut ikili dosyaların yüklenememesi veya yürütülememesi gibi hatalı bir davranış değişikliğiyle karşılaşılabilir, bu durumda yeniden derleme gerekebilir.

  • 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.

Uyarı

Bu makale devam eden bir çalışmadır. Bu, .NET 10'daki uyumsuz değişikliklerin tam listesi değildir.

ASP.NET Çekirdeği

Başlık Değişiklik türü
Bilinen API uç noktaları için çerez girişi yeniden yönlendirmeleri devre dışı bırakıldı Davranış değişikliği
WithOpenApi uzantısı yönteminin kullanımdan kaldırılması Kaynak uyumsuz
TryHandleAsync true döndürdüğünde özel durum tanılamaları gizlendi Davranış değişikliği
IActionContextAccessor ve ActionContextAccessor kullanımdan kaldırıldı Kaynak uyumsuz/davranışsal değişiklik
IncludeOpenAPIAnalyzers özelliği ve MVC API çözümleyicileri kullanım dışı bırakıldı Kaynak uyumsuz
IPNetwork ve ForwardedHeadersOptions.KnownNetworks kullanımdan kaldırıldı Kaynak uyumsuz
Microsoft.Extensions.ApiDescription.Client paketi kullanım dışı bırakıldı Kaynak uyumsuz
Razor çalışma zamanı derlemesi kullanımdan kaldırıldı Kaynak uyumsuz
WebHostBuilder, IWebHost ve WebHost kullanımdan kaldırıldı Kaynak uyumsuz

Containers

Başlık Değişiklik türü
Varsayılan .NET görüntüleri Ubuntu kullanır Davranış değişikliği

Çekirdek .NET kitaplıkları

Başlık Değişiklik türü
ActivitySource.CreateActivity ve ActivitySource.StartActivity davranış değişikliği Davranış değişikliği
Arm64 SVE hata vermeyen yükler maske gerektirir İkili/kaynak uyumsuz
BufferedStream.WriteByte artık örtük temizleme gerçekleştirmez Davranış değişikliği
C# 14 ile span parametreleri kullanılarak aşırı yükleme çözünürlüğü Davranış değişikliği
Genel matematikte tutarlı kaydırma davranışı Davranış değişikliği
Varsayılan izleme bağlamı yayıcısı W3C standardına güncelleştirildi Davranış değişikliği
DriveInfo.DriveFormat, Linux dosya sistemi türlerini döndürür Davranış değişikliği
DynamicallyAccessedMembers ek açıklaması DefaultValueAttribute ctor'dan kaldırıldı İkili/kaynak uyumsuz
InlineArray ile açık yapı Boyutuna izin verilmiyor İkili uyumsuz
FilePatternMatch.Stem null atanamaz olarak değiştirildi Kaynak uyumsuz/davranışsal değişiklik
GnuTarEntry ve PaxTarEntry artık varsayılan olarak atime ve ctime içermiyor Davranış değişikliği
LDAP DirectoryControl ayrıştırması artık daha katı hale geldi Davranış değişikliği
MacCatalyst sürümünü normalleştirme Davranış değişikliği
.NET çalışma zamanı artık varsayılan sonlandırma sinyali işleyicileri sağlamaz Davranış değişikliği
Çekirdek kitaplıklara System.Linq.AsyncEnumerable dahil Kaynak uyumsuz
Type.MakeGenericSignatureType bağımsız değişken doğrulaması Davranış değişikliği

Cryptography

Başlık Değişiklik türü
CompositeMLDsa, draft-08 olarak güncelleştirildi Davranış değişikliği
CoseSigner.Key null olabilir Davranışsal/kaynak uyumsuz değişiklik
MLDsa ve SlhDsa 'SecretKey' üyeleri yeniden adlandırıldı Kaynak uyumsuz
OpenSSL şifreleme temel bilgileri macOS'ta desteklenmez Davranış değişikliği
Unix'te OpenSSL 1.1.1 veya üzeri gereklidir Davranış değişikliği
X500DistinguishedName doğrulaması daha katı Davranış değişikliği
X509Certificate ve PublicKey anahtar parametreleri null olabilir Davranışsal/kaynak uyumsuz değişiklik
Ortam değişkeni DOTNET_OPENSSL_VERSION_OVERRIDE olarak yeniden adlandırıldı Davranış değişikliği

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

EF Core 10'da hataya neden olan değişiklikler

Extensions

Başlık Değişiklik türü
BackgroundService tüm ExecuteAsync'i Görev olarak çalıştırır Davranış değişikliği
AnyKey ile GetKeyedService() ve GetKeyedServices() sorunlarını düzeltme Davranış değişikliği
Yapılandırmada korunan null değerler Davranış değişikliği
Konsol günlüğü çıkışında ileti artık yinelenmedi Davranış değişikliği
ProviderAliasAttribute, Microsoft.Extensions.Logging.Abstractions derlemesine taşındı Kaynak uyumsuz
Trim-unsafe Microsoft.Extensions.Configuration kodundan DynamicallyAccessedMembers ek açıklaması kaldırıldı İkili uyumsuz

Globalization

Başlık Değişiklik türü
Ortam değişkeni DOTNET_ICU_VERSION_OVERRIDE olarak yeniden adlandırıldı Davranış değişikliği

Yükleme aracı

Başlık Değişiklik türü
VS Code için dotnet.acquire API artık her zaman en son sürümü indirmez Davranış değişikliği

Interop

Başlık Değişiklik türü
IDispatchEx COM nesnesini IReflect'e atama başarısız oluyor Davranış değişikliği
Tek dosyalı uygulamalar artık yürütülebilir dizinde yerel kitaplıkları arayamıyor Davranış değişikliği
DllImportSearchPath.AssemblyDirectory belirtildiğinde yalnızca derleme dizini aranıyor Davranış değişikliği

Ağ Kurma

Başlık Değişiklik türü
PublishTrimmed ile HTTP/3 desteği varsayılan olarak devre dışı bırakıldı Kaynak uyumsuz
MailAddress ardışık noktalar için doğrulamayı zorunlu kılar Davranış değişikliği
Tarayıcı HTTP istemcilerinde varsayılan olarak etkinleştirilen akış HTTP yanıtları Davranış değişikliği
Uri uzunluk sınırları kaldırıldı Davranış değişikliği

Reflection

Başlık Değişiklik türü Tanıtılan sürüm
InvokeMember/FindMembers/DeclaredMembers üzerinde daha kısıtlı ek açıklamalar Davranışsal/kaynak uyumsuz

SDK ve MSBuild

Başlık Değişiklik türü
Kullanıcı senaryolarında --interactive .NET CLI true varsayılan olarak Davranış değişikliği
dotnet CLI komutları, komutla ilgili olmayan verileri stderr'a günlüğe kaydeder Davranış değişikliği
.NET araç paketlemesi RuntimeIdentifier'a özgü araç paketleri oluşturur Davranış değişikliği
'Dağınık manifestolar'dan 'iş yükü setleri' moduna varsayılan iş yükü yapılandırmasını ayarlayın . Davranış değişikliği
Kod kapsamı EnableDynamicNativeInstrumentation varsayılan olarak false olur Davranış değişikliği
dnx.ps1 dosyası artık .NET SDK'sında yok Kaynak uyumsuz
dotnet new sln varsayılan olarak SLNX dosya biçimini kullanır Davranış değişikliği
dotnet package list geri yükleme gerçekleştirir Davranış değişikliği
dotnet restore geçişli paketleri denetler Davranış değişikliği
dotnet tool install --local varsayılan olarak bildirim oluşturur Davranış değişikliği
dotnet watch günlükleri stdout yerine stderr'e kaydeder Davranış değişikliği
project.json dotnet restore desteklenmiyor Kaynak uyumsuz
SHA-1 parmak izi desteği kullanım dışı bırakıldı dotnet nuget sign Davranış değişikliği
MSBUILDCUSTOMBUILDEVENTWARNING kaçış kapağı kaldırıldı Davranış değişikliği
MSBuild özel kültür kaynak yönetimi Davranış değişikliği
NU1510, NuGet tarafından ayıklama yapılan doğrudan başvurular için oluşturulur Kaynak uyumsuz
Çalışma zamanı varlığı olmayan NuGet paketleri deps.json Kaynak uyumsuz
Sürüm olmadan PackageReference bir hataya neden olur Davranış değişikliği
PrunePackageReference doğrudan budanabilir başvuruları özelleştirir Davranış değişikliği
HTTP uyarıları dotnet package list ve dotnet package search içinde hatalara dönüştürüldü Davranışsal/kaynak uyumsuz değişiklik
NUGET_ENABLE_ENHANCED_HTTP_RETRY ortam değişkeni kaldırıldı Davranış değişikliği
NuGet geçersiz paket kimlikleri için hata günlüğe kaydeder Davranış değişikliği
ToolCommandName araç dışı paketler için ayarlanmadı Kaynak uyumsuz

Serialization

Başlık Değişiklik türü
System.Text.Json özellik adı çakışmalarını denetler Davranış değişikliği
XmlSerializer artık ObsoleteAttribute ile işaretlenmiş özellikleri yoksayar Davranış değişikliği

Windows Forms

Başlık Değişiklik türü
API'nin kullanımdan kaldırılması Kaynak uyumsuz
Hem WPF hem de WinForms'a başvuran uygulamaların MenuItem ve ContextMenu türlerini kesinleştirmesi gerekir Kaynak uyumsuz
HtmlElement.InsertAdjacentElement içinde parametre yeniden adlandırıldı Kaynak uyumsuz
TreeView onay kutusu resmi kısaltma Davranış değişikliği
StatusStrip varsayılan olarak System RenderMode kullanır Davranış değişikliği
System.Drawing OutOfMemoryException, ExternalException olarak değiştirildi Davranış değişikliği

Windows Presentation Foundation (WPF)

Başlık Değişiklik türü
Boş ColumnDefinitions ve RowDefinitions'a izin verilmiyor Kaynak uyumsuz
DynamicResource'un yanlış kullanımı uygulamanın kilitlenmesine neden oluyor Kaynak uyumsuz/davranışsal değişiklik