Icke-bakåtkompatibla ändringar i .NET 11

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

  • Binärt inkompatibelt – När det körs mot den nya runtime eller komponenten kan befintliga binärfiler stöta på en brytande beteendeförändring, till exempel att det inte går att ladda eller exekvera, och så behövs omkompilering.

  • Källkod inkompatibel – Vid omkompilering med den nya SDK:n eller komponenten eller för att inrikta sig på den nya körmiljön, kan existerande källkod behöva ändringar för att kompileras korrekt.

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

Anmärkning

Den här artikeln är ett pågående arbete. Det är inte en fullständig lista över breaking changes i .NET 11.

ASP.NET Core

Se Breaking changes in ASP.NET Core 11.

Core .NET-bibliotek

Titel Typ av ändring
Assembly.GetCallingAssembly-beteende ändras när stöd för stackspårning är inaktiverat Beteendeförändring
CborReader och CborWriter tillämpar ett maximalt kapslingsdjup som standard Beteendeförändring
Komplexa specialvärdesresultat följer nu C23 Bilaga G Beteendeförändring
CRC32-validering har lagts till när zip-arkivposter läss Beteendeförändring
DateOnly- och TimeOnly TryParse-metoder genererar ogiltiga indata Beteendeförändring
DeflateStream- och GZipStream skriver headers och footers för tomma nyttolaster Beteendeförändring
Environment.TickCount överensstämmer med Windows timeout-beteende Beteendeförändring
Math.Round och MathF.Round returnerar korrekt avrundade resultat Beteendeförändring
NamedPipeServerStream med PipeOptions.CurrentUserOnly åtstramar Unix-socketfilbehörigheter Beteendeförändring
Nullable.GetUnderlyingType kastar för subklasser av typen Beteendeförändring
PackagePart.GetStream() returnerar en dataström som inte kan sökas efter komprimerade delar i ReadWrite-paket Beteendeförändring
API-obsoletioner med diagnostik-ID som inte är standard (.NET 11) Källan är inkompatibel
SafeFileHandle.IsAsync och FileStream.IsAsync återspeglar korrekt icke-blockerande tillstånd i Unix Beteendeförändring
API:er för TAR-läsning verifierar sidhuvudkontrollsummor vid läsning Beteendeförändring
TarWriter använder HardLink-poster för hårdlänkade filer Beteendeförändring
ZipArchive.CreateAsync laddar omedelbart ZIP-arkivinnehåll Beteendeförändring

Cryptography

Titel Typ av ändring
API-föråldringar Källan är inkompatibel
Sammansatt ML-DSA på Windows använder inbyggd implementering Beteendeförändring
DSA har tagits bort från macOS Beteendeförändring
Hämtning av Linux AIA-certifikat begränsad till två hämtningar per kedjebyggnad Beteendeförändring

Driftsättning

Titel Typ av ändring
configProperties i .runtimeconfig.dev.json åsidosätter .runtimeconfig.json Beteendeförändring

Extensions

Titel Typ av ändring
ChangeToken.OnChange async överbelastar ombindning av befintliga återanrop som returnerar uppgifter Beteendeförändring
FileConfigurationProvider utlöser inte omladdningstoken efter ett ignorerat inläsningsfel Beteendeförändring
FileConfigurationSource.OnLoadException-återanrop anropas för I/O-fel Beteendeförändring
IHost.RunAsync och IHost.StopAsync genererar när en BackgroundService misslyckas Beteendeförändring
Vissa Microsoft.Extensions-paket som ingår i delade ramverket Beteendeförändring

Globalization

Titel Typ av ändring
Det lägsta stödda datumet för den japanska kalendern har korrigerats Beteendeförändring

Interop

Titel Typ av ändring
NativeAOT använder lib-prefix för inbyggda biblioteksutdata i Unix Beteendeförändring

JIT-kompilator

Titel Typ av ändring
Lägsta maskinvarukrav har uppdaterats Beteendeförändring

Networking

Titel Typ av ändring
SslStream-AIA-certifikatnedladdningar på serversidan är inaktiverade som standard Beteendeförändring

.NET MAUI

Titel Typ av ändring
Lägsta Android API-nivå som har höjts till 24 Beteendeförändring

SDK och MSBuild

Titel Typ av ändring
dnx-skript kringgår global.json SDK-val Beteendeförändring
mono-startmålet har inte angetts för .NET Framework-appar Beteendeförändring
NativeAOT CLI-kommandohantering aktiverad som standard Beteendeförändring
NU1703 varnar för paket som använder inaktuella MonoAndroid-ramverkstillgångar Källan är inkompatibel
NuGet-paketet varnar för paket-ID:n med begränsade tecken Beteendeförändring
Val av lokal SDK-containerkörning föredrar plattformsbaserade verktyg Beteendeförändring
Mallmotorpaket stöder inte längre netstandard2.0 Binär/källinkompatibel
VSTest tar bort beroendet av Newtonsoft.Json Binär/källinkompatibel