Dela via


Icke-bakåtkompatibla ändringar i .NET 7

Om du migrerar en app till .NET 7 kan de icke-bakåtkompatibla ändringarna som anges här påverka dig. Ändringar grupperas efter teknikområde, till exempel ASP.NET Core eller Windows Forms.

Den här artikeln anger om varje icke-bakåtkompatibel ändring är binärkompatibel eller källkompatibel:

  • Binärkompatibel – Befintliga binärfiler läses in och körs utan omkompilering och körningsbeteendet ändras inte.
  • Källkompatibel – Källkoden kompileras utan ändringar när den nya körningen riktas eller den nya SDK:n eller komponenten används.

ASP.NET Core

Title Binärkompatibel Källkompatibel
API-kontrollantåtgärder försöker härleda parametrar från DI ✔️
ASPNET-prefix miljövariabelpriorence ✔️ ✔️
AutentiseraAsync för fjärranslutna autentiseringsprovidrar ✔️
Autentisering i WebAssembly-appar ✔️
Standardautentiseringsschema ✔️
Händelse-ID:t för vissa Microsoft.AspNetCore.Mvc.Core-loggmeddelanden har ändrats ✔️
Återställningsfilslutpunkter ✔️
IHubClients och IHubCallerClients döljer medlemmar ✔️
Kestrel: HTTPS-standardbindningen har tagits bort ✔️
Microsoft.AspNetCore.Server.Kestrel. Transport.Libuv och libuv.dll borttagna
Microsoft.Data.SqlClient har uppdaterats till 4.0.1 ✔️
Mellanprogram defersar inte längre till slutpunkten med null-begärandedelegering ✔️
MVC:s identifiering av en tom brödtext i modellbindningen har ändrats ✔️
Api-ändringar för cachelagring av utdata
SignalR Hub-metoder försöker matcha parametrar från DI ✔️

Core .NET-bibliotek

Title Binärkompatibel Källkompatibel
API-obsoletioner med standarddiagnostik-ID ✔️
API-obsoletioner med diagnostik-ID:n som inte är standard ✔️
Api:er för BinaryFormatter-serialisering genererar kompilatorfel ✔️
BrotliStream tillåter inte längre odefinierade CompressionLevel-värden ✔️
C++/CLI-projekt i Visual Studio ✔️
Ändringar i reflektion anropar API-undantag ✔️
Samlingsbar sammansättning i icke-samlarbar sammansättningLoadContext ✔️
Precisionsändring för DateTime-tilläggsmetoder ✔️ ✔️
Är lika med ändring av metodbeteende för NaN ✔️
EventSource-återanropsbeteende ✔️ ✔️
Allmän typbegränsning för PatternContext<T>
Äldre FileStream-strategi har tagits bort ✔️
Biblioteksstöd för äldre ramverk
Maximal precision för numeriska formatsträngar ✔️
Regex-mönster med intervall korrigerade ✔️ ✔️
SerializationFormat.Binary är föråldrad
System.Drawing.Common config switch har tagits bort ✔️ ✔️
System.Runtime.CompilerServices.Unsafe NuGet-paket ✔️ ✔️
Tidsfält på symboliska länkar ✔️
Spåra länkade cacheposter ✔️
Verifiera CompressionLevel för BrotliStream ✔️

Konfiguration

Title Binärkompatibel Källkompatibel
System.diagnostics-post i app.config ✔️

Kryptografi

Title Binärkompatibel Källkompatibel
Att dekryptera EnvelopedCms fördubblas inte ✔️
Dynamisk X509ChainPolicy-verifieringstid ✔️
X500DistinguishedName parsning av egna namn ✔️

Distribution

Title Binärkompatibel Källkompatibel
Alla sammansättningar trimmade som standard ✔️
Sökning på flera nivåer är inaktiverat ✔️
x86-värdsökväg i 64-bitars Windows ✔️ ✔️
TrimmerDefaultAction är inaktuell ✔️

Entity Framework Core

Icke-bakåtkompatibla ändringar i EF Core 7

Tillägg

Title Binärkompatibel Källkompatibel
Bindningskonfiguration till ordlista utökar värden ✔️ ✔️
ContentRootPath för appar som startas av Windows Shell ✔️
Miljövariabelprefix ✔️

Globalisering

Title Binärkompatibel Källkompatibel
Globaliserings-API:er använder ICU-bibliotek på Windows Server ✔️

Interop

Title Binärkompatibel Källkompatibel
RuntimeInformation.OSArchitecture under emulering ✔️

.NET MAUI

Title Binärkompatibel Källkompatibel
Konstruktorer accepterar basgränssnitt i stället för betongtyp ✔️
Flödesriktningshjälpmetoder har tagits bort
Ny UpdateBackground-parameter ✔️
Egenskapen ScrollToRequest har bytt namn
Vissa Windows-API:er tas bort

Nätverk

Title Binärkompatibel Källkompatibel
AllowRenegotiation-standardvärdet är falskt
Anpassade pingnyttolaster i Linux ✔️
Socket.End-metoder genererar inte ObjectDisposedException ✔️

SDK och MSBuild

Title Binärkompatibel Källkompatibel
Automatisk RuntimeIdentifier för vissa projekt ✔️
Automatisk RuntimeIdentifier endast för publicering
CLI-konsolutdata använder UTF-8
Konsolkodning inte UTF-8 efter slutförande ✔️
MSBuild-serialisering av anpassade typer i .NET 7
SDK-installationer sida vid sida
Verktygsmanifest i rotmappen ✔️ ✔️
Versionskrav för .NET 7 SDK ✔️ ✔️
dotnet-test: växla -a till alias --arch i stället för --test-adapter-path
dotnet-test: växla -r till alias --runtime i stället för --results-dir
--output alternativet är inte längre giltigt för kommandon på lösningsnivå
SDK anropar inte längre ResolvePackageDependencies ✔️

Serialisering

Title Binärkompatibel Källkompatibel
DataContractSerializer behåller tecken vid deserialisering -0 ✔️
Deserialisera versionstyp med inledande eller avslutande blanksteg ✔️
JsonSerializerOptions kopieringskonstruktor innehåller JsonSerializerContext ✔️
Polymorf serialisering för objekttyper ✔️
System.Text.Json källgeneratoråterställning ✔️

Windows Forms

Title Binärkompatibel Källkompatibel
Obsoletioner och varningar ✔️
Vissa API:er genererar ArgumentNullException ✔️

WPF

Title Binärkompatibel Källkompatibel Bakåtkompatibel
Återställt funktionssätt för dra och släpp-åtgärder i textredigerare ✔️ ✔️

XML och XSLT

Title Binärkompatibel Källkompatibel
XmlSecureResolver är föråldrad

Se även