Bagikan melalui


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 run-time 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

Judul Kompatibel dengan biner Kompatibel dengan sumber
ActionResult<T> mengatur StatusCode ke 200 ✔️
Metode AddDataAnnotationsValidation dibuat usang ✔️
Rakitan dihapus dari kerangka kerja bersama Microsoft.AspNetCore.App ✔️
Blazor: Nama parameter diubah dalam metode RequestImageFileAsync ✔️
Blazor: Properti WebEventDescriptor.EventArgsType diganti
Blazor: Interop array byte ✔️
Changed MessagePack library in @microsoft/signalr-protocol-msgpack ✔️
Properti ClientCertificate tidak memicu negosiasi ulang untuk HttpSys ✔️
Metadata EndpointName tidak diatur secara otomatis ✔️
Identitas: Versi Bootstrap default antarmuka pengguna berubah
Kestrel: Atribut pesan log berubah ✔️
Microsoft.AspNetCore.Http.Features split ✔️
Middleware: Middleware Pengalihan HTTPS memberikan pengecualian pada port HTTPS yang ambigu ✔️
Middleware: Overload Penggunaan Baru ✔️
Ganti nama API minimal di RC 1
Ganti nama API minimal di RC 2
MVC tidak melakukan buffer jenis IAsyncEnumerable saat menggunakan System.Text.Json ✔️
Anotasi jenis referensi yang dapat diubah null berubah ✔️
API yang kedaluwarsa dan dihapus ✔️
PreserveCompilationContext tidak dikonfigurasi secara default ✔️
Razor: Compiler tidak lagi menghasilkan rakitan Tampilan ✔️
Razor: ID Pengelogan berubah ✔️
Razor: API RazorEngine ditandai usang ✔️
SignalR: Klien Java diperbarui ke RxJava3 ✔️
Metode TryParse dan BindAsync divalidasi

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 ✔️ ✔️

Entity Framework Core

Perubahan yang melanggar 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