Perubahan yang melanggar di .NET 6

Jika Anda memigrasikan aplikasi ke .NET 6, perubahan yang melanggar yang tercantum di sini dapat memengaruhi Anda. Perubahan dikelompokkan berdasarkan bidang teknologi, seperti ASP.NET Core atau Formulir Windows.

Artikel ini menunjukkan apakah setiap perubahan yang melanggar kompatibel dengan biner atau kompatibel dengan sumber:

  • Kompatibel biner - Biner yang ada akan dimuat dan dijalankan dengan sukses tanpa kompilasi ulang, dan perilaku runtime tidak akan berubah.
  • Sumber kompatibel - Kode sumber akan berhasil dikompilasi tanpa perubahan saat menargetkan runtime baru atau menggunakan SDK atau komponen baru.

Inti ASP.NET

Lihat Perubahan signifikan di ASP.NET Core 6.

Kontainer

Judul Kompatibel dengan biner Kompatibel dengan sumber
Pemformatan pencatat konsol default dalam gambar kontainer ✔️

Untuk informasi tentang perubahan yang melanggar lainnya untuk kontainer di .NET 6, lihat Catatan Rilis Kontainer .NET 6.

Pustaka .NET Inti

Judul Kompatibel dengan biner Kompatibel dengan sumber
Kedaluwarsa API dengan ID diagnostik non-default ✔️
Perubahan ke anotasi jenis referensi yang dapat diubah null ✔️
Evaluasi string kondisional dalam metode Debug ✔️
Perilaku Environment.ProcessorCount di Windows ✔️
Perilaku panggilan balik EventSource ✔️ ✔️
File.Replace pada Unix memberikan pengecualian untuk mencocokkan Windows ✔️
FileStream mengunci file dengan kunci bersama di Unix ✔️
FileStream tidak lagi menyinkronkan offset dengan OS
Pembaruan FileStream.Position setelah ReadAsync atau WriteAsync selesai
ID diagnostik baru untuk API yang kedaluwarsa ✔️
Metode System.Linq.Queryable baru overload ✔️
Versi kerangka kerja yang lebih lama dihilangkan dari paket ✔️
Nama parameter berubah ✔️
Nama parameter dalam jenis turunan Stream ✔️
Pembacaan parsial dan zero-byte dalam DeflateStream, GZipStream, dan CryptoStream ✔️
Atur stempel waktu pada file baca-saja di Windows ✔️
Presisi penguraian format numerik standar ✔️
Anggota abstrak statik di antarmuka ✔️
Overload dan urutan evaluasi StringBuilder.Append ✔️
API dengan nama kuat menampilkan PlatformNotSupportedException ✔️
System.Drawing.Common hanya didukung di Windows
System.Security.SecurityContext ditandai kedaluwarsa ✔️
Task.FromResult dapat menampilkan database tunggal ✔️
Pengecualian yang tidak tertangani dari BackgroundService ✔️

Kriptografi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Metode CreateEncryptor memberikan pengecualian untuk ukuran umpan balik yang salah ✔️

Penyebaran

Judul Kompatibel dengan biner Kompatibel dengan sumber
Jalur host x86 pada Windows 64-bit ✔️ ✔️

Inti Kerangka Kerja Entitas

Lihat Melanggar perubahan di EF Core 6.

Ekstensi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Pemeriksaan AddProvider untuk penyedia non-null ✔️
FileConfigurationProvider.Load memunculkan InvalidDataException ✔️
Elemen XML berulang menyertakan indeks ✔️
Mengatasi ServiceProvider yang dibuang memunculkan pengecualian ✔️

Globalisasi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Pembuatan budaya dan pemetaan kasus dalam mode globalisasi-invarian

Interop

Judul Kompatibel dengan biner Kompatibel dengan sumber
Anggota abstrak statik di antarmuka ✔️

Kompilator JIT

Judul Kompatibel dengan biner Kompatibel dengan sumber
Argumen panggilan Coerce menurut ECMA-335 ✔️ ✔️

Jaringan

Judul Kompatibel dengan biner Kompatibel dengan sumber
Port dihapus dari SPN untuk Kerberos dan Negosiasi ✔️
WebRequest, WebClient, dan ServicePoint sudah kedaluwarsa ✔️

SDK

Judul Kompatibel dengan biner Kompatibel dengan sumber
Opsi -p untuk dotnet run tidak digunakan lagi ✔️
Kode C# dalam templat tidak didukung oleh versi sebelumnya ✔️ ✔️
File EditorConfig disertakan secara implisit ✔️
Membuat apphost untuk macOS ✔️
Menghasilkan kesalahan untuk file duplikat dalam output penerbitan ✔️
GetTargetFrameworkProperties dan GetNearestTargetFramework dihapus dari protokol ProjectReference ✔️
Lokasi penginstalan untuk x64 yang ditiru di Arm64 ✔️
MSBuild tidak lagi mendukung GetType() panggilan
.NET tidak dapat diinstal ke lokasi kustom ✔️ ✔️
OutputType tidak secara otomatis diatur ke WinExe ✔️
Menerbitkan ReadyToRun dengan --no-restore memerlukan perubahan ✔️
File runtimeconfig.dev.json tidak dibuat ✔️
Peringatan RuntimeIdentifier jika mandiri tidak ditentukan ✔️
Manifes alat di folder akar ✔️ ✔️
Persyaratan versi untuk SDK .NET 6 ✔️ ✔️
File .version menyertakan versi build ✔️ ✔️
Menulis referensi yang dirakit ke IntermediateOutputPath ✔️

Serialisasi

Judul Kompatibel dengan biner Kompatibel dengan sumber
DataContractSerializer mempertahankan tanda saat deserialisasi -0 ✔️
Format serialisasi default untuk TimeSpan ✔️
Serialisasi IAsyncEnumerable ✔️
Merefaktor API pembuatan sumber JSON ✔️
JsonNumberHandlingAttribute pada properti koleksi ✔️
Pembuat sumber JsonSerializer baru overload ✔️

Formulir Windows

Judul Kompatibel dengan biner Kompatibel dengan sumber
Templat C# menggunakan bootstrap aplikasi ✔️
Properti TableLayoutSettings menampilkan InvalidEnumArgumentException ✔️
API terkait DataGridView sekarang menghasilkan InvalidOperationException ✔️
Metode ListViewGroupCollection menampilkan InvalidOperationException baru ✔️
Panjang teks maksimum NotifyIcon.Text meningkat ✔️
ScaleControl hanya dipanggil saat diperlukan ✔️
Beberapa API menampilkan ArgumentNullException ✔️
TreeNodeCollection.Item menampilkan pengecualian jika node ditetapkan di tempat lain ✔️

XML dan XSLT

Judul Kompatibel dengan biner Kompatibel dengan sumber
Perilaku XNodeReader.GetAttribute untuk indeks yang tidak valid ✔️

Lihat juga