Melanggar perubahan di .NET 8

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

Artikel ini mengategorikan setiap perubahan yang menyebabkan ketidakcocokan sebagai ketidakcocokan biner atau ketidakcocokan sumber, atau sebagai perubahan perilaku:

  • Biner tidak kompatibel - Saat dijalankan terhadap runtime atau komponen baru, biner yang ada mungkin mengalami perubahan perilaku yang melanggar, seperti kegagalan memuat atau mengeksekusi, dan jika demikian, memerlukan kompilasi ulang.

  • Sumber tidak kompatibel - Saat dikompilasi ulang menggunakan SDK atau komponen baru atau untuk menargetkan runtime baru, kode sumber yang ada mungkin memerlukan perubahan sumber agar berhasil dikompilasi.

  • Perubahan perilaku - Kode dan biner yang ada mungkin berperilaku berbeda saat runtime. Jika perilaku baru tidak diinginkan, kode yang ada perlu diperbarui dan dikompilasi ulang.

ASP.NET Core

Lihat Perubahan mendasar di ASP.NET Core 8.

Kontainer

Judul Jenis perubahan
Paket 'ca-certificates' dihapus dari gambar Alpine Biner tidak kompatibel
Gambar kontainer Debian ditingkatkan ke Debian 12 Tidak kompatibel secara biner/perubahan perilaku
Port default ASP.NET Core diubah menjadi 8080 Perubahan perilaku
Paket Kerberos dihapus dari gambar Alpine dan Debian Biner tidak kompatibel
Paket 'libintl' dihapus dari gambar Alpine Perubahan perilaku
Tag kontainer multi-platform hanya untuk Linux Perubahan perilaku
Pengguna 'aplikasi' baru di gambar Linux Perubahan perilaku

Pustaka Inti .NET

Judul Jenis perubahan
Nama operasi aktivitas saat null Perubahan perilaku
Perilaku AnonymousPipeServerStream.Dispose Perubahan perilaku
Kedaluwarsa API dengan ID diagnostik khusus Sumber tidak kompatibel
Pemetaan garis miring terbalik di jalur file Unix Perubahan perilaku
Metode Base64.DecodeFromUtf8 mengabaikan spasi kosong Perubahan perilaku
Dukungan jenis enum yang didukung Boolean dihapus Perubahan perilaku
Format Complex.ToString diubah menjadi <a; b> Perubahan perilaku
Enumerasi jalur direktori drive saat ini Perubahan perilaku
Enumerable.Sum melemparkan OverflowException baru untuk beberapa input Perubahan perilaku
FileStream menulis ketika pipa ditutup Perubahan perilaku
FindSystemTimeZoneById tidak mengembalikan objek baru Perubahan perilaku
GC. GetGeneration mungkin mengembalikan Int32.MaxValue Perubahan perilaku
Perilaku GetFolderPath di Unix Perubahan perilaku
GetSystemVersion tidak lagi mengembalikan ImageRuntimeVersion Perubahan perilaku
Anotasi ITypeDescriptorContext nullable Sumber tidak kompatibel
API LDAP tidak tersedia di .NET Standard / .NET Framework Biner tidak kompatibel
Legacy Console.ReadKey dihapus Perubahan perilaku
Penyusun metode menghasilkan parameter dengan HasDefaultValue diatur ke false Perubahan perilaku
URI bagian paket sekarang dibandingkan secara tidak sensitif terhadap huruf besar/kecil dalam System.IO.Packaging Perubahan perilaku
ProcessStartInfo.WindowStyle digunakan ketika UseShellExecute bernilai false Perubahan perilaku
RuntimeIdentifier mengembalikan platform yang runtimenya dibuat Perubahan perilaku
Type.GetType melempar pengecualian untuk semua jenis elemen yang tidak valid Perubahan perilaku

Kriptografi

Judul Jenis perubahan Pengenalan
Ukuran tag autentikasi AesGcm di macOS Perubahan perilaku Pratinjau 1
RSA. EncryptValue dan RSA. DecryptValue usang Sumber tidak kompatibel Pratinjau 1

Penyebaran

Judul Jenis perubahan
Host menentukan aset khusus RID Tidak kompatibel secara biner/perubahan perilaku
.NET Monitor hanya menyertakan citra distroless Perubahan perilaku
Paket .NET untuk openSUSE dan SLES bergantung pada OpenSSL 3.x Perubahan perilaku
StripSymbols disetel secara default ke true Perubahan perilaku

Inti Kerangka Kerja Entitas

Lihat perubahan yang merusak di EF Core 8.

Ekstensi

Judul Jenis perubahan
ActivatorUtilities.CreateInstance bereaksi secara konsisten Perubahan perilaku
ActivatorUtilities.CreateInstance membutuhkan penyedia non-null Perubahan perilaku
ConfigurationBinder secara diam-diam melewati elemen array yang tidak valid Perubahan perilaku
ConfigurationBinder melemparkan untuk nilai yang tidak cocok Perubahan perilaku
Paket ConfigurationManager tidak lagi mereferensikan System.Security.Permissions Sumber tidak kompatibel
Paket DirectoryServices tidak lagi mereferensikan System.Security.Permissions Sumber tidak kompatibel
Kunci kosong ditambahkan ke kamus oleh pengikatan konfigurasi Perubahan perilaku
FromKeyedServicesAttribute.Key bisa null Sumber tidak kompatibel
HostApplicationBuilderSettings.Args dihormati oleh hostApplicationBuilder ctor Perubahan perilaku
ManagementDateTimeConverter.ToDateTime mengembalikan waktu lokal Perubahan perilaku
Perubahan pemformatan System.Formats.Cbor DateTimeOffset Perubahan perilaku

Globalisasi

Judul Jenis perubahan
Pengonversi tanggal dan waktu menghormati argumen budaya Perubahan perilaku
Default TwoDigitYearMax adalah 2049 Perubahan perilaku

Interop

Judul Jenis perubahan
CreateObjectFlags.Unwrap hanya melakukan pembongkaran pada instance target Perubahan perilaku
Marshaller kustom memerlukan anggota tambahan Sumber tidak kompatibel
API IDispatchImplAttribute dihapus Tidak kompatibel secara biner
JSFunctionBinding konstruktor default publik implisit dihapus Biner tidak kompatibel
Jenis SafeHandle harus memiliki konstruktor publik Sumber tidak kompatibel
Resolusi pustaka asli Linux tidak lagi menggunakan netcoredeps Perubahan perilaku

Jaringan

Judul Jenis perubahan
SendFile melempar NotSupportedException untuk soket tanpa koneksi Perubahan perilaku
Info pengguna dalam mailto: URI dibandingkan Perubahan perilaku

Refleksi

Judul Jenis perubahan
IntPtr tidak lagi digunakan untuk jenis penunjuk fungsi Perubahan perilaku

SDK

Judul Jenis perubahan
Output konsol CLI menggunakan UTF-8 Perubahan perilaku/Sumber dan biner tidak kompatibel
Pengodean konsol bukan UTF-8 setelah selesai Perubahan perilaku/Ketidakcocokan biner
Kontainer secara default menggunakan tag 'latest' Perubahan perilaku
'dotnet pack' menggunakan konfigurasi Rilis Perubahan perilaku/Sumber tidak kompatibel
'dotnet publish' menggunakan konfigurasi Rilis Perubahan perilaku/Sumber tidak kompatibel
Output duplikat untuk -getItem, -getProperty, dan -getTargetResult Perubahan perilaku
Penyertaan implisit untuk System.Net.Http tidak lagi dilakukan Perubahan perilaku/Sumber tidak kompatibel
Peristiwa build turunan kustom MSBuild tidak digunakan lagi Perubahan perilaku
MSBuild menghormati DOTNET_CLI_UI_LANGUAGE Perubahan perilaku
Aplikasi khusus runtime tidak mandiri Sumber/biner tidak kompatibel
Opsi --arch tidak menyiratkan mandiri Perubahan perilaku
'dotnet restore' memunculkan peringatan kerentanan keamanan Perubahan perilaku
'dotnet list package' memperingatkan bahwa sumber tidak menyediakan data kerentanan Perubahan perilaku
SDK menggunakan grafik RID yang lebih kecil Perubahan perilaku/Sumber tidak kompatibel
Mengatur DebugSymbols ke false menonaktifkan pembuatan PDB Perubahan perilaku
Tautan Sumber disertakan dalam .NET SDK Sumber tidak kompatibel
Pemangkasan mungkin tidak digunakan dengan .NET Standard atau .NET Framework Perubahan perilaku
Paket yang tidak tercantum tidak diinstal secara default untuk alat .NET Perubahan perilaku
File .user yang diimpor di build luar Perubahan perilaku
Persyaratan versi untuk .NET 8 SDK Sumber tidak kompatibel

Serialisasi

Judul Jenis perubahan
BinaryFormatter dinonaktifkan untuk sebagian besar proyek Perubahan perilaku
Proyek PublishedTrimmed gagal serialisasi berbasis refleksi Perubahan perilaku
Deserializer berbasis refleksi dengan segera menyelesaikan metadata Perubahan perilaku

Formulir Windows

Judul Jenis perubahan
Cert dicentang sebelum memuat gambar jarak jauh di PictureBox Perubahan perilaku
DateTimePicker.Text adalah string kosong Perubahan perilaku
DefaultValueAttribute dihapus dari beberapa properti Perubahan perilaku
Ctor ExceptionCollection melempar ArgumentException Perubahan perilaku
Skala formulir sesuai dengan AutoScaleMode Perubahan perilaku
ImageList.ColorDepth secara default adalah Depth32Bit Perubahan perilaku
System.Windows.Extensions tidak mereferensikan System.Drawing.Common Sumber tidak kompatibel
TableLayoutStyleCollection memicu ArgumentException Perubahan perilaku
Formulir tingkat atas menskalakan ukuran minimum dan maksimum ke DPI Perubahan perilaku
Pendeklarasian usang WFDEV002 sekarang menghasilkan kesalahan Sumber tidak kompatibel

Lihat juga