Bagikan melalui


Perubahan yang mencolok di .NET 7

Jika Anda memigrasikan aplikasi ke .NET 7, perubahan yang mencolok 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
Tindakan pengontrol API mencoba menyimpulkan parameter dari DI ✔️
Prioritas variabel lingkungan awalan ASPNET ✔️ ✔️
AuthenticateAsync untuk penyedia autentikasi jarak jauh ✔️
Autentikasi di aplikasi WebAssembly ✔️
Skema autentikasi default ✔️
ID Peristiwa untuk beberapa pesan log Microsoft.AspNetCore.Mvc.Core berubah ✔️
Titik akhir file fallback ✔️
IHubClients dan IHubCallerClients menyembunyikan anggota ✔️
Kestrel: Pengikatan HTTPS default dihapus ✔️
Microsoft.AspNetCore.Server.Kestrel.Transport.Libuv dan libuv.dll dihapus
Microsoft.Data.SqlClient diperbarui ke 4.0.1 ✔️
Middleware tidak lagi menunda titik akhir dengan delegasi permintaan null ✔️
Deteksi MVC dari isi kosong dalam pengikatan model berubah ✔️
Perubahan API penembolokan output
Metode SignalR Hub mencoba mengatasi parameter dari DI ✔️

Pustaka .NET Inti

Judul Kompatibel dengan biner Kompatibel dengan sumber
KEDALUARSA API dengan ID diagnostik default ✔️
Kedaluwarsa API dengan ID diagnostik non-default ✔️
API serialisasi BinaryFormatter menghasilkan kesalahan kompilator ✔️
BrotliStream tidak lagi mengizinkan nilai CompressionLevel yang tidak terdefinisi ✔️
Proyek C++/CLI di Visual Studio ✔️
Perubahan pada pengecualian API pemanggilan refleksi ✔️
Rakitan yang Dapat Dikumpulkan dalam AssemblyLoadContext yang tidak dapat dikumpulkan ✔️
Perubahan presisi metode penambahan DateTime ✔️ ✔️
Sama dengan perubahan perilaku metode untuk NaN ✔️
Perilaku panggilan balik EventSource ✔️ ✔️
Batasan jenis generik pada PatternContext<T>
Strategi FileStream warisan dihapus ✔️
Dukungan pustaka untuk kerangka kerja yang lebih lama
Presisi maksimum untuk string format numerik ✔️
Pola regex dengan rentang diperbaiki ✔️ ✔️
SerializationFormat.Binary sudah usang
Sakelar konfigurasi System.Drawing.Common dihapus ✔️ ✔️
Paket System.Runtime.CompilerServices.Unsafe NuGet ✔️ ✔️
Bidang waktu pada tautan simbolis ✔️
Melacak entri cache tertaut ✔️
Memvalidasi CompressionLevel untuk BrotliStream ✔️

Konfigurasi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Entri system.diagnostics di app.config ✔️

Kriptografi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Mendekripsi EnvelopedCms tidak membuka dua kali lipat ✔️
Waktu verifikasi Dynamic X509ChainPolicy ✔️
Penguraian nama yang mudah diingat X500DistinguishedName ✔️

Penyebaran

Judul Kompatibel dengan biner Kompatibel dengan sumber
Semua rakitan dipangkas secara default ✔️
Pencarian multi-tingkat dinonaktifkan ✔️
Jalur host x86 pada Windows 64-bit ✔️ ✔️
TrimmerDefaultAction tidak digunakan lagi ✔️

Entity Framework Core

Memutus perubahan di EF Core 7

Ekstensi

Judul Kompatibel dengan biner Kompatibel dengan sumber
Mengikat konfigurasi ke kamus memperluas nilai ✔️ ✔️
ContentRootPath untuk aplikasi yang diluncurkan oleh Windows Shell ✔️
Awalan variabel lingkungan ✔️

Globalisasi

Judul Kompatibel dengan biner Kompatibel dengan sumber
API Globalisasi menggunakan pustaka ICU di Windows Server ✔️

Interop

Judul Kompatibel dengan biner Kompatibel dengan sumber
RuntimeInformation.OSArchitecture di bawah emulasi ✔️

.NET MAUI

Judul Kompatibel dengan biner Kompatibel dengan sumber
Konstruktor menerima antarmuka dasar alih-alih jenis beton ✔️
Metode pembantu arah alur dihapus
Parameter UpdateBackground baru ✔️
Properti ScrollToRequest diganti namanya
Beberapa API Windows dihapus

Jaringan

Judul Kompatibel dengan biner Kompatibel dengan sumber
Default AllowRenegotiation adalah false
Payload ping kustom di Linux ✔️
Metode Socket.End tidak melempar ObjectDisposedException ✔️

SDK dan MSBuild

Judul Kompatibel dengan biner Kompatibel dengan sumber
RuntimeIdentifier Otomatis untuk proyek tertentu ✔️
RuntimeIdentifier Otomatis untuk diterbitkan saja
Output konsol CLI menggunakan UTF-8
Pengodean konsol bukan UTF-8 setelah selesai ✔️
Serialisasi MSBuild dari jenis kustom di .NET 7
Penginstalan SDK berdampingan
Manifes alat di folder akar ✔️ ✔️
Persyaratan versi untuk SDK .NET 7 ✔️ ✔️
uji dotnet: beralih -a ke alias --arch alih-alih --test-adapter-path
uji dotnet: beralih -r ke alias --runtime alih-alih --results-dir
--output opsi tidak lagi valid untuk perintah tingkat solusi
SDK tidak lagi memanggil ResolvePackageDependencies ✔️

Serialisasi

Judul Kompatibel dengan biner Kompatibel dengan sumber
DataContractSerializer mempertahankan tanda saat deserialisasi -0 ✔️
Deserialisasi jenis Versi dengan spasi kosong di depan atau di belakang ✔️
Konstruktor salinan JsonSerializerOptions mencakup JsonSerializerContext ✔️
Serialisasi polimorfik untuk jenis objek ✔️
Fallback generator sumber System.Text.Json ✔️

Formulir Windows

Judul Kompatibel dengan biner Kompatibel dengan sumber
Kedaluarsa dan peringatan ✔️
Beberapa API menampilkan ArgumentNullException ✔️

WPF

Judul Kompatibel dengan biner Kompatibel dengan sumber Kompatibel mundur
Perilaku operasi seret dan letakkan yang dipulihkan pada editor teks ✔️ ✔️

XML dan XSLT

Judul Kompatibel dengan biner Kompatibel dengan sumber
XmlSecureResolver sudah usang

Lihat juga