Aracılığıyla paylaş


.NET 9'da kapsamlı değişiklikler

Bir uygulamayı .NET 9'a taşıyorsanız, burada listelenen uyumluluk sorunları yaratabilecek 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 uyumsuz - Yeni çalışma zamanı veya bileşeni ile çalıştırıldığında, mevcut ikili dosyalar yüklenememe veya yürütülememe gibi hatalara yol açabilecek bir davranış değişikliğiyle karşılaşabilir ve bu durumdaysa 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 Çekirdeği

Başlık Değişiklik türü
DefaultKeyResolution.ShouldGenerateNewKey değiştirilmiş anlamı Davranış değişikliği
Geliştirici sertifikası dışa aktarma artık klasör oluşturmaz Davranış değişikliği
İletilen Üst Bilgiler Ara Yazılımı bilinmeyen proxy'lerden X-Forwarded-* üst bilgilerini yoksayar Davranış değişikliği
HostBuilder geliştirme ortamında ValidateOnBuild/ValidateScopes'u etkinleştirir Davranış değişikliği
Küresel ad alanına aktarılmayan Legacy Mono ve Emscripten API'leri Kaynak uyumsuz
Birden çok oluşturucuya sahip ara yazılım türleri Davranış değişikliği

Kapsayıcılar

Başlık Değişiklik türü Tanıtılan sürüm
Kapsayıcı görüntüleri artık zlib yüklemiyor Davranış değişikliği Önizleme 7
.NET İzleyici görüntüleri, yalnızca sürüm etiketlerine indirgenmiştir Davranış değişikliği Önizleme 5

Core .NET kitaplıkları

Başlık Değişiklik türü Tanıtılan sürüm
CompressionLevel ile ZipArchiveEntry ekleme, ZIP merkezi dizin üst bilgisi genel amaçlı bit bayraklarını ayarlar Davranış değişikliği Önizleme 5
Açık olmayan genel değerler için değiştirilmiş UnsafeAccessor desteği Davranış değişikliği Önizleme 6
Özel tanılama kimlikleriyle API'nin kullanımdan kaldırılması Kaynak uyumsuz (Çok sayıda)
StringValues örtük işleçlerini etkileyen belirsiz aşırı yükleme çözümlemesi Kaynak uyumsuz Georgia
BigInteger maksimum uzunluk Davranış değişikliği Önizleme 6
BinaryReader.ReadString() yanlış biçimlendirilmiş dizilerde "\uFFFD" döndürür Davranış değişikliği Önizleme 7
C# çözümlemesi, params span türü aşırı yüklemeleri tercih eder Kaynak uyumsuz
System.Void türünde dizi oluşturulmasına izin verilmiyor Davranış değişikliği Önizleme 1
Varsayılan Equals() ve GetHashCode() ile işaretlenmiş türler için throw InlineArrayAttribute Davranış değişikliği Önizleme 6
EnumConverter kayıtlı türlerin enum olduğunu doğrular Davranış değişikliği Önizleme 7
FromKeyedServicesAttribute artık anahtarlanmamış parametre eklemez Davranış değişikliği RC 1
IncrementingPollingCounter'in ilk geri çağırma işlemi asenkron Davranış değişikliği RC 1
Satır içi dizi yapısı boyut sınırı zorunlu kılındı Davranış değişikliği Önizleme 1
InMemoryDirectoryInfo, rootDir'i dosyalara önceden eklir Davranış değişikliği Önizleme 1
TimeSpan.From*() için tamsayı alan yeni aşırı yüklemeler Kaynak uyumsuz Önizleme 3
Bazı OOB paketlerinin yeni sürümü Kaynak uyumsuz Önizleme 5
RuntimeHelpers.GetSubArray farklı tür döndürür Davranış değişikliği Önizleme 1
String.Trim(params ReadOnlySpan<char>) aşırı yüklemesi kaldırıldı Kaynak/ikili uyumsuz Georgia
Boş ortam değişkenleri desteği Davranış değişikliği Önizleme 6
ZipArchiveEntry adları ve açıklamaları UTF8 bayrağına uygun Davranış değişikliği RC 1

Şifreleme

Başlık Değişiklik türü Tanıtılan sürüm
System.Security.Cryptography.Pkcs netstandard2.0 API'leri Kaldırıldı Kaynak uyumsuz Georgia
SafeEvpPKeyHandle.DuplicateHandle tanıtıcıyı yeniden oluşturur Davranış değişikliği Önizleme 7
Bazı X509Certificate2 ve X509Certificate oluşturucuları kullanımdan kaldırıldı Kaynak uyumsuz Önizleme 7
Windows özel anahtar ömrü basitleştirilmiş Davranış değişikliği Önizleme 7

Dağıtım

Başlık Değişiklik türü Tanıtılan sürüm
Kullanım dışı masaüstü Windows/macOS/Linux MonoVM çalışma zamanı paketleri Kaynak uyumsuz Önizleme 7
Uygulama çalışma zamanı yapılandırma ayarlarında ortam değişkenleri önceliklidir Davranış değişikliği Georgia

Entity Framework Core

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

Birlikte Çalışma

Başlık Değişiklik türü Tanıtılan sürüm
CET varsayılan olarak desteklenir İkili uyumsuz Önizleme 6

JIT derleyicisi

Başlık Değişiklik türü Tanıtılan sürüm
Kayan noktadan tamsayıya dönüştürmeler sınırlandırılıyor Davranış değişikliği Önizleme 4
Bazı SVE API'leri kaldırıldı Kaynak uyumsuz RC 2

Başlık Değişiklik türü Tanıtılan sürüm
HttpClient ölçümleri server.port koşulsuz olarak rapor eder Davranış değişikliği Önizleme 7
HttpClientFactory kayıt tutma işlemi, üst bilgi değerlerini varsayılan olarak sansürler Davranış değişikliği RC 1
HttpClientFactory, birincil işleyici olarak SocketsHttpHandler kullanır Davranış değişikliği Önizleme 6
HttpListenerRequest.UserAgent null olabilecek Kaynak uyumsuz Önizleme 1
HttpClient EventSource olaylarında URI sorgu düzenleme Davranış değişikliği Önizleme 7
IHttpClientFactory günlüklerinde URI sorgusunun gizlenmesi Davranış değişikliği Önizleme 7

SDK ve MSBuild

Başlık Değişiklik türü Tanıtılan sürüm
dotnet sln add geçersiz dosya adlarına izin vermiyor Davranış değişikliği 9.0.2xx
dotnet watchEski çerçeveler için Anında Yeniden Yükleme ile uyumsuz Davranış değişikliği RC 1
dotnet workload komut çıktı değişikliği Davranış değişikliği Önizleme 1
installer depo sürümü artık belgelenmemiş Davranış değişikliği Önizleme 5
MSBuild özel kültür kaynaklarının işlenmesi Davranış değişikliği 9.0.200/9.0.300
.NET Framework hedeflenirken kullanılan yeni varsayılan RID Kaynak uyumsuz Georgia
Terminal Kayıtçı varsayılandır Davranış değişikliği Önizleme 1
.NET 9 SDK'sı için sürüm gereksinimleri Kaynak uyumsuz Georgia
.NET Standard 1.x hedefi için uyarı gönderildi Kaynak uyumsuz Önizleme 6
.NET 7 hedefi için uyarı gönderildi Kaynak uyumsuz Georgia

Serileştirme

Başlık Değişiklik türü Tanıtılan sürüm
BinaryFormatter her zaman atar Davranış değişikliği Önizleme 6
Nullable JsonDocument özellikleri JsonValueKind.Null olarak seri durumdan çıkarılır Davranış değişikliği Önizleme 1
System.Text.Json meta veri okuyucusu artık meta veri özellik adlarının kaçış karakterlerini kaldırıyor Davranış değişikliği Georgia

Windows Forms

Başlık Değişiklik türü Tanıtılan sürüm
BindingSource.SortDescriptions null döndürmüyor Davranış değişikliği Önizleme 1
Null olurluk ek açıklamalarında yapılan değişiklikler Kaynak uyumsuz Önizleme 1
ComponentDesigner.Initialize bir ArgumentNullException fırlatır Davranış değişikliği Önizleme 1
DataGridViewRowAccessibleObject.Name başlangıç satırı dizini Davranış değişikliği Önizleme 1
IMsoComponent desteği isteğe bağlıdır Davranış değişikliği Önizleme 2
Yeni güvenlik çözümleyicileri Kaynak uyumsuz RC 1
DataGridView null olduğunda özel durum yok Davranış değişikliği Önizleme 1
PictureBox HttpClient özel durumlarını oluşturur Davranış değişikliği Önizleme 6
StatusStrip farklı bir varsayılan işleyici kullanır Davranış değişikliği Georgia

WPF (Windows Presentation Foundation)

Başlık Değişiklik türü Tanıtılan sürüm
GetXmlNamespaceMaps tür değişikliği Davranış değişikliği/Kaynak uyumsuz Önizleme 3

Ayrıca bkz.