Dela via


Ej bakåtkompatibla ändringar i .NET 9

Om du migrerar en app till .NET 9 kan de kompatibilitetsbrytande ä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 kategoriserar varje ändring som binärt inkompatibel eller källinkompatibel, eller som en beteendeförändring:

  • Binärt inkompatibel - När de körs mot den nya runtime eller komponent kan befintliga binära filer stöta på en brytande förändring i beteende, som exempelvis misslyckande att läsa in eller köra, och i så fall kräva omkompilering.

  • Inkompatibel källa – När den omkompileras med den nya SDK:n eller komponenten eller för att rikta in sig på den nya körningen kan befintlig källkod kräva källändringar för att kompilera korrekt.

  • Beteendeförändring - Befintlig kod och binärer kan bete sig annorlunda vid körning. Om det nya beteendet är oönskat måste befintlig kod uppdateras och kompileras om.

ASP.NET Kärna

Titel Typ av ändring
DefaultKeyResolution.ShouldGenerateNewKey har ändrat betydelsen Beteendeförändring
Dev cert export skapar inte längre mappen Beteendeförändring
Vidarebefordrade rubriker Mellanprogram ignorerar X-Vidarebefordrade-* huvuden från okända proxyservrar Beteendeförändring
HostBuilder aktiverar ValidateOnBuild/ValidateScopes i utvecklingsmiljön Beteendeförändring
Äldre Mono- och Emscripten-API:er exporteras inte till globala namnområden Källan är inkompatibel
Mellanprogramstyper med flera konstruktorer Beteendeförändring

Behållare

Titel Typ av ändring Lanserad version
Containeravbildningar installerar inte längre zlib Beteendeförändring Förhandsversion 7
.NET Monitor-bilder förenklas till taggar som enbart innehåller version Beteendeförändring Förhandsversion 5

Centrala .NET-bibliotek

Titel Typ av ändring Lanserad version
När du lägger till en ZipArchiveEntry med CompressionLevel, ställer det in zip-arkivets centrala katalogrubriks allmänna bitflaggor Beteendeförändring Förhandsversion 5
Förändrat stöd för UnsafeAccessor för icke-öppna generics Beteendeförändring Förhandsversion 6
API-föråldringar med anpassade diagnostiska ID:n Källan är inkompatibel (Flera)
tvetydig överlagringsupplösning som påverkar implicita StringValues-operatorer Källan är inkompatibel GA
Maximal längd för BigInteger Beteendeförändring Förhandsversion 6
BinaryReader.GetString() returnerar "\uFFFD" på felaktiga sekvenser Beteendeförändring Förhandsversion 7
C#-överlagringslösning föredrar params span-typsöverlagringar Källan är inkompatibel
Det är inte tillåtet att skapa en matris av typen System.Void Beteendeförändring Förhandsversion 1
Standard Equals() och GetHashCode() kast för typer som har markerats med InlineArrayAttribute Beteendeförändring Förhandsversion 6
EnumConverter validerar att registrerade typer är uppräkningsbara Beteendeförändring Förhandsversion 7
FromKeyedServicesAttribute matar inte längre in icke-nyckelade parametrar Beteendeförändring RC 1
Inledande återanrop för IncrementingPollingCounter är asynkront Beteendeförändring RC 1
Storleksgränsen för struct för infogad matris upprätthålls Beteendeförändring Förhandsversion 1
InMemoryDirectoryInfo tilldelar rootDir till filer Beteendeförändring Förhandsversion 1
Nya TimeSpan.From*()-överlagringar som tar heltal Källan är inkompatibel Förhandsversion 3
Ny version av vissa OOB-paket Källan är inkompatibel Förhandsversion 5
RuntimeHelpers.GetSubArray returnerar en annan typ Beteendeförändring Förhandsversion 1
String.Trim(params ReadOnlySpan<char>) överbelastning borttagen Käll- och binärinkompatibel GA
Stöd för tomma miljövariabler Beteendeförändring Förhandsversion 6
ZipArchiveEntry-namn och kommentarer respekterar UTF8-flaggan Beteendeförändring RC 1

Kryptografi

Titel Typ av ändring Lanserad version
API:er som tagits bort från System.Security.Cryptography.Pkcs netstandard2.0 Källan är inkompatibel GA
SafeEvpPKeyHandle.DuplicateHandle ökar referensen på hanteraren Beteendeförändring Förhandsversion 7
Vissa X509Certificate2- och X509Certificate-konstruktorer är föråldrade Källan är inkompatibel Förhandsversion 7
Windows privata nyckellivslängd förenklad Beteendeförändring Förhandsversion 7

Införande

Titel Typ av ändring Lanserad version
Inaktuella Windows/macOS/Linux MonoVM-körningspaket Källan är inkompatibel Förhandsversion 7

Entity Framework Core

Störande ändringar i EF Core 9

Interop

Titel Typ av ändring Lanserad version
CET stöds som standard Binärt inkompatibelt Förhandsversion 6

JIT-kompilator

Titel Typ av ändring Lanserad version
Konverteringar från flyttal till heltal mättas Beteendeförändring Förhandsversion 4
Vissa SVE-API:er har tagits bort Källan är inkompatibel RC 2

Nätverk

Titel Typ av ändring Lanserad version
API-föråldringar Källan är inkompatibel Förhandsversion 6
HttpClient-måttrapport server.port villkorslöst Beteendeförändring Förhandsversion 7
HttpClientFactory-loggning maskerar huvudvärden som standard Beteendeförändring RC 1
HttpClientFactory använder SocketsHttpHandler som primär hanterare Beteendeförändring Förhandsversion 6
HttpListenerRequest.UserAgent är null Källan är inkompatibel Förhandsversion 1
URI-frågeredigering i HttpClient EventSource-händelser Beteendeförändring Förhandsversion 7
URI-frågeredigering i IHttpClientFactory-loggar Beteendeförändring Förhandsversion 7

SDK och MSBuild

Titel Typ av ändring Lanserad version
dotnet sln add tillåter inte ogiltiga filnamn Beteendeförändring 9.0.2xx
dotnet watch inkompatibel med Hot Reload för äldre ramverk Beteendeförändring RC 1
dotnet workload kommandoutdata ändras Beteendeförändring Förhandsversion 1
installer repositoryversionen dokumenteras inte längre Beteendeförändring Förhandsversion 5
MSBuild-resurshantering för anpassad kultur Beteendeförändring 9.0.200/9.0.300
Nytt standard-RID som används när man riktar sig mot .NET Framework Källan är inkompatibel GA
Terminallogger är standard Beteendeförändring Förhandsversion 1
Versionskrav för .NET 9 SDK Källan är inkompatibel GA
Varning som genereras för .NET Standard 1.x-målet Källan är inkompatibel Förhandsversion 6
Varning utges för .NET 7-mål Källan är inkompatibel GA

Serialisering

Titel Typ av ändring Lanserad version
BinaryFormatter kastar alltid Beteendeförändring Förhandsversion 6
Egenskaper för Nullable JsonDocument avserialiseras till JsonValueKind.Null Beteendeförändring Förhandsversion 1
System.Text.Json-metadataläsaren avkodar nu metadatas eskaperade egenskapsnamn Beteendeförändring GA

Windows-formulär

Titel Typ av ändring Lanserad version
BindingSource.SortDescriptions returnerar inte null Beteendeförändring Förhandsversion 1
Ändringar i nullabilitetsanteckningar Källan är inkompatibel Förhandsversion 1
ComponentDesigner.Initialize kastar ArgumentNullException Beteendeförändring Förhandsversion 1
DataGridViewRowAccessibleObject.Name startindex för rad Beteendeförändring Förhandsversion 1
Stöd för IMsoComponent kräver anmälan Beteendeförändring Förhandsversion 2
Nya säkerhetsanalysverktyg Källan är inkompatibel RC 1
Inget undantag om DataGridView är null Beteendeförändring Förhandsversion 1
PictureBox kastar HttpClient-undantag Beteendeförändring Förhandsversion 6
StatusStrip använder en annan standardåtergivning Beteendeförändring GA

WPF (Windows Presentation Foundation)

Titel Typ av ändring Lanserad version
GetXmlNamespaceMaps typändring Beteendeförändring/Inkompatibel källa Förhandsversion 3

Se även