Brytande ändringar i .NET 10

Om du migrerar en applikation till .NET 10 kan de ändringar som inte är kompatibla med tidigare versioner, och som anges i listan här, påverka dig. Ändringar grupperas efter teknikområde, till exempel ASP.NET Core eller Windows Forms.

Den här artikeln kategoriserar varje inkompatibel ändring som binärt inkompatibelt eller källkodskompatibelt eller som en beteendeförändring:

  • Binärt inkompatibelt – När det körs mot den nya körningsmiljön eller komponenten kan befintliga binärfiler stöta på en beteendebrott, till exempel att binärerna inte går 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ärfiler kan bete sig annorlunda under körning. Om det nya beteendet är oönskat måste befintlig kod uppdateras och kompileras om.

Note

Den här artikeln är ett pågående arbete. Det är inte en fullständig lista över större ändringar i .NET 10.

ASP.NET Core

Title Typ av ändring
Omdirigeringar av cookieinloggning inaktiverade för kända API-slutpunkter Beteendeförändring
Utfasning av WithOpenApi-tilläggsmetod Källan är inkompatibel
Undantagsdiagnostik ignoreras när TryHandleAsync returnerar sant Beteendeförändring
IActionContextAccessor och ActionContextAccessor är föråldrade Källinkompatibel/beteendeförändring
Egenskapen IncludeOpenAPIAnalyzers och MVC API-analysverktyg är inaktuella Källan är inkompatibel
IPNetwork och ForwardedHeadersOptions.KnownNetworks är föråldrade Källan är inkompatibel
Microsoft.Extensions.ApiDescription.Client-paketet är inaktuellt Källan är inkompatibel
Razor runtime-kompilering är föråldrad Källan är inkompatibel
WebHostBuilder, IWebHost och WebHost är föråldrade Källan är inkompatibel

Containers

Title Typ av ändring
Standard .NET-avbildningar använder Ubuntu Beteendeförändring

De grundläggande .NET-biblioteken

Title Typ av ändring
Beteendeförändring för ActivitySource.CreateActivity och ActivitySource.StartActivity Beteendeförändring
Arm64 SVE-inläsningar utan fel kräver mask Binär/källkompatibel
BufferedStream.WriteByte utför inte längre implicit tömning Beteendeförändring
C# 14 överbelastningslösning med spanparametrar Beteendeförändring
Konsekvent skiftbeteende i allmän matematik Beteendeförändring
Spårningskontextspridare har uppdaterats till W3C-standard Beteendeförändring
DriveInfo.DriveFormat returnerar Linux-filsystemtyper Beteendeförändring
DynamicallyAccessedMembers-kommentaren har tagits bort från DefaultValueAttribute ctor Binär/källkompatibel
Explicit struct Size är inte tillåten med InlineArray Binärt inkompatibelt
FilePatternMatch.Stem har ändrats till icke-nullable Källinkompatibel/beteendeförändring
GnuTarEntry och PaxTarEntry innehåller inte längre atime och ctime som standard Beteendeförändring
LDAP DirectoryControl-parsning är nu strängare Beteendeförändring
MacCatalyst-versionsnormalisering Beteendeförändring
.NET-körningen tillhandahåller inte längre standardtermineringssignalhanterare Beteendeförändring
System.Linq.AsyncEnumerable ingår i kärnbibliotek Källan är inkompatibel
Type.MakeGenericSignatureType argument validering Beteendeförändring

Cryptography

Title Typ av ändring
CompositeMLDsa har uppdaterats till draft-08 Beteendeförändring
CoseSigner.Key kan vara null Beteende-/källokompabilitetsändring
MLDsa- och SlhDsa"SecretKey"-medlemmar har bytt namn Källan är inkompatibel
OpenSSL-kryptografiska primitiver stöds inte på macOS Beteendeförändring
OpenSSL 1.1.1 eller senare krävs på Unix Beteendeförändring
X500DistinguishedName-validering är striktare Beteendeförändring
X509Certificate- och PublicKey-nyckelparametrar kan vara null Beteende-/källokompabilitetsändring
Miljövariabeln har bytt namn till DOTNET_OPENSSL_VERSION_OVERRIDE Beteendeförändring

Entity Framework Core

Brytande ändringar i EF Core 10

Extensions

Title Typ av ändring
BackgroundService kör hela ExecuteAsync som en uppgift Beteendeförändring
Åtgärda problem i GetKeyedService() och GetKeyedServices() med AnyKey Beteendeförändring
Null-värden bevarade i konfigurationen Beteendeförändring
Meddelandet dupliceras inte längre i konsolloggens utdata Beteendeförändring
ProviderAliasAttribute har flyttats till sammansättningen Microsoft.Extensions.Logging.Abstractions Källan är inkompatibel
DynamicallyAccessedMembers-anteckningen togs bort från icke-trimsäker kod i Microsoft.Extensions.Configuration Binärt inkompatibelt

Globalization

Title Typ av ändring
Miljövariabeln har bytt namn till DOTNET_ICU_VERSION_OVERRIDE Beteendeförändring

Installationsverktyg

Title Typ av ändring
dotnet.acquire API för VS Code laddar inte längre alltid ned senaste Beteendeförändring

Interop

Title Typ av ändring
Det går inte att casta IDispatchEx COM-objekt till IReflect Beteendeförändring
Enfilapplikationer letar inte längre efter inbyggda bibliotek i körbar katalog Beteendeförändring
Ange DllImportSearchPath.AssemblyDirectory söker bara i sammansättningskatalogen Beteendeförändring

Networking

Title Typ av ändring
HTTP/3-stöd har inaktiverats som standard med PublishTrimmed Källan är inkompatibel
HTTP-svar för direktuppspelning aktiveras som standard i webbläsarens HTTP-klienter Beteendeförändring
Uri längdgränser har tagits bort Beteendeförändring

Reflection

Title Typ av ändring Lanserad version
Mer begränsade anteckningar på InvokeMember/FindMembers/DeclaredMembers Beteende-/källkompatibel

SDK och MSBuild

Title Typ av ändring
.NET CLI --interactive används som standard i true användarscenarier Beteendeförändring
dotnet CLI-kommandon loggar icke-kommandoreleventiska data till stderr Beteendeförändring
.NET-verktygspaket skapar RuntimeIdentifier-specifika verktygspaket Beteendeförändring
Standardkonfiguration för arbetsbelastning från "lösa manifest" till "arbetsbelastningsuppsättningar"-läge Beteendeförändring
Kodtäckning EnableDynamicNativeInstrumentation är som standard satt till falsk Beteendeförändring
dnx.ps1 fil ingår inte längre i .NET SDK Källan är inkompatibel
dotnet new sln standardvärdet för SLNX-filformat Beteendeförändring
dotnet package list utför återställning Beteendeförändring
dotnet restore granskar transitiva paket Beteendeförändring
dotnet tool install --local skapar manifest som standard Beteendeförändring
dotnet watch loggar till stderr i stället för stdout Beteendeförändring
project.json stöds inte i dotnet restore Källan är inkompatibel
SHA-1-fingeravtrycksstöd inaktuellt i dotnet nuget sign Beteendeförändring
MSBUILDCUSTOMBUILDEVENTWARNING nödlösning borttagen Beteendeförändring
MSBuild-resurshantering för anpassad kultur Beteendeförändring
NU1510 höjs för direkta referenser som beskärs av NuGet Källan är inkompatibel
NuGet-paket utan körningstillgångar ingår inte i deps.json Källan är inkompatibel
PackageReference utan en version genererar ett fel Beteendeförändring
PrunePackageReference privatiserar direkt beskärbara referenser Beteendeförändring
HTTP-varningar har uppgraderats till fel i dotnet package list och dotnet package search Beteende-/källokompabilitetsändring
NUGET_ENABLE_ENHANCED_HTTP_RETRY miljövariabeln har tagits bort Beteendeförändring
NuGet loggar ett fel för ogiltiga paket-ID:n Beteendeförändring
ToolCommandName inte inställt för paket som inte är verktyg Källan är inkompatibel

Serialisering

Title Typ av ändring
System.Text.Json söker efter egenskapsnamnkonflikter Beteendeförändring
XmlSerializer ignorerar inte längre egenskaper som är markerade med ObsoleteAttribute Beteendeförändring

Windows Forms

Title Typ av ändring
API-föråldringar Källan är inkompatibel
Program som refererar till både WPF och WinForms måste skilja menuItem- och ContextMenu-typerna åtskilt Källan är inkompatibel
Parametern har bytt namn i HtmlElement.InsertAdjacentElement Källan är inkompatibel
TrädVy, trunkering av kryssrute bild Beteendeförändring
StatusStrip använder System RenderMode som standard Beteendeförändring
System.Drawing OutOfMemoryException har ändrats till ExternalException Beteendeförändring

Windows Presentation Foundation (WPF)

Title Typ av ändring
Tomma ColumnDefinitions och RowDefinitions tillåts inte Källan är inkompatibel
Felaktig användning av DynamicResource orsakar programkrasch Källinkompatibel/beteendeförändring