Freigeben über


Breaking Changes in .NET 10

Wenn Sie eine App zu .NET 10 migrieren, können sich die hier aufgeführten Änderungen auf Sie auswirken. Änderungen werden nach Technologiebereich gruppiert, z. B. ASP.NET Core oder Windows Forms.

In diesem Artikel werden die einzelnen Breaking Changes als mit der Binärdatei inkompatibel, mit der Quelle inkompatibel oder als Verhaltensänderung kategorisiert:

  • Binärdatei inkompatibel: Wenn sie mit der neuen Runtime oder Komponente ausgeführt werden, kann bei vorhandenen Binärdateien ein Breaking Change im Verhalten auftreten, z. B. Fehler beim Laden oder Ausführen. In diesem Fall müssen sie erneut kompiliert werden.

  • Quelle inkompatibel: Bei der Neukompilierung mit dem neuen SDK oder der neuen Komponente oder zur Ausrichtung auf die neue Runtime sind für vorhandenen Quellcode möglicherweise Quelländerungen erforderlich, damit die Kompilierung erfolgreich ist.

  • Verhaltensänderung – Vorhandene Code- und Binärdateien verhalten sich zur Laufzeit möglicherweise anders. Wenn das neue Verhalten unerwünscht ist, muss vorhandener Code aktualisiert und neu kompiliert werden.

Note

Dies ist nicht die endgültige Fassung dieses Artikels. Nicht alle Breaking Changes für .NET 10 werden hier aufgeführt.

ASP.NET Kern

Title Art der Änderung
Cookie-Login-Umleitungen für bekannte API-Endpunkte deaktiviert Verhaltensänderung
Veraltete WithOpenApi-Erweiterungsmethode Inkompatible Quelle
Ausnahmediagnose unterdrückt, wenn TryHandleAsync "true" zurückgibt Verhaltensänderung
IActionContextAccessor und ActionContextAccessor sind veraltet Inkompatibilität/Verhaltensänderung der Quelle
IncludeOpenAPIAnalyzers-Eigenschaft und MVC-API-Analysatoren sind veraltet Inkompatible Quelle
IPNetwork und ForwardedHeadersOptions.KnownNetworks sind veraltet Inkompatible Quelle
Microsoft.Extensions.ApiDescription.Client-Paket veraltet Inkompatible Quelle
Razor Die Laufzeitkompilierung ist veraltet. Inkompatible Quelle
WebHostBuilder, IWebHost und WebHost sind veraltet Inkompatible Quelle

Containers

Title Art der Änderung
Standardmäßige .NET-Bilder verwenden Ubuntu Verhaltensänderung

Core .NET-Bibliotheken

Title Art der Änderung
Verhaltensänderung bei ActivitySource.CreateActivity und ActivitySource.StartActivity Verhaltensänderung
Arm64 SVE nicht fehlerhafte Ladevorgänge erfordern eine Maske Binär/Quelle inkompatibel
BufferedStream.WriteByte führt keine implizite Spülung mehr durch. Verhaltensänderung
Überladungsauflösung mit Span-Parametern in C# 14 Verhaltensänderung
Konsistentes Verschiebungsverhalten in generischer Mathematik Verhaltensänderung
Standard-Tracing-Kontextpropagator auf W3C-Standard aktualisiert Verhaltensänderung
DriveInfo.DriveFormat gibt Linux-Dateisystemtypen zurück. Verhaltensänderung
Annotation für DynamicallyAccessedMembers aus dem Konstruktor von DefaultValueAttribute entfernt Binär/Quelle inkompatibel
Explizite Strukturgröße mit InlineArray nicht zulässig Binär nicht kompatibel
FilePatternMatch.Stem wurde in nicht nullable geändert Inkompatibilität/Verhaltensänderung der Quelle
GnuTarEntry und PaxTarEntry enthalten standardmäßig keine atime und ctime mehr. Verhaltensänderung
Die LDAP DirectoryControl-Analyse ist jetzt strenger Verhaltensänderung
MacCatalyst-Version-Normalisierung Verhaltensänderung
.NET-Runtime stellt keine Standardmäßigen Beendigungssignalhandler mehr bereit. Verhaltensänderung
System.Linq.AsyncEnumerable in Kernbibliotheken enthalten Inkompatible Quelle
Type.MakeGenericSignatureType-Argumentüberprüfung Verhaltensänderung

Cryptography

Title Art der Änderung
CompositeMLDsa auf Draft-08 aktualisiert Verhaltensänderung
CoseSigner.Key kann null sein Behavior Change/Quelle inkompatibel
MLDsa- und SlhDsa -Mitglieder "SecretKey" umbenannt Inkompatible Quelle
OpenSSL-Kryptografiegrundtypen werden unter macOS nicht unterstützt Verhaltensänderung
OpenSSL 1.1.1 oder höher erforderlich auf Unix Verhaltensänderung
Die Überprüfung des X500DistinguishedName ist strenger Verhaltensänderung
X509Certificate- und PublicKey-Schlüsselparameter können null sein Behavior Change/Quelle inkompatibel
Umgebungsvariable wurde in DOTNET_OPENSSL_VERSION_OVERRIDE umbenannt Verhaltensänderung

Entity Framework Core

Grundlegende Änderungen in EF Core 10

Extensions

Title Art der Änderung
BackgroundService führt alle ExecuteAsync als Aufgabe aus. Verhaltensänderung
Beheben von Problemen in GetKeyedService() und GetKeyedServices() mit AnyKey Verhaltensänderung
Nullwerte, die in der Konfiguration beibehalten werden Verhaltensänderung
Nachricht in der Konsolenprotokollausgabe nicht mehr dupliziert Verhaltensänderung
ProviderAliasAttribute wurde in die Assembly "Microsoft.Extensions.Logging.Abstractions" verschoben. Inkompatible Quelle
Entfernung der Anmerkung DynamicallyAccessedMembers aus dem nicht kürzungssicheren Microsoft.Extensions.Configuration-Code Binär nicht kompatibel

Globalization

Title Art der Änderung
Umgebungsvariable wurde in DOTNET_ICU_VERSION_OVERRIDE umbenannt Verhaltensänderung

Installationstool

Title Art der Änderung
dotnet.acquire API für VS Code lädt nicht mehr automatisch die neueste Version herunter Verhaltensänderung

Interop

Title Art der Änderung
Umwandlung des IDispatchEx-COM-Objekts in IReflect schlägt fehl Verhaltensänderung
Apps mit einer Datei suchen nicht mehr nach nativen Bibliotheken im ausführbaren Verzeichnis Verhaltensänderung
Durch Angeben von DllImportSearchPath.AssemblyDirectory wird nur das Assemblyverzeichnis durchsucht. Verhaltensänderung

Networking

Title Art der Änderung
HTTP/3-Unterstützung ist standardmäßig mit PublishTrimmed deaktiviert Inkompatible Quelle
Standardmäßig aktiviertes Streamen von HTTP-Antworten in HTTP-Browserclients Verhaltensänderung
Uri Längenbeschränkungen entfernt Verhaltensänderung

Spiegelung

Title Art der Änderung Eingeführte Version
Weitere eingeschränkte Anmerkungen für InvokeMember/FindMembers/DeclaredMembers Verhaltens-/Quellinkompatibel

SDK und MSBuild

Title Art der Änderung
.NET CLI --interactive ist standardmäßig true in Benutzerszenarien Verhaltensänderung
dotnet CLI-Befehle protokollieren nicht befehlsrelevante Daten bei Stderr Verhaltensänderung
.NET Tool packaging creates RuntimeIdentifier-spezifische Toolpakete Verhaltensänderung
Standardmäßige Workloadkonfiguration vom Modus 'loose manifest' in Modus 'workload sets' geändert Verhaltensänderung
Die Codeabdeckung "EnableDynamicNativeInstrumentation" ist standardmäßig auf "false" festgelegt. Verhaltensänderung
dnx.ps1 Datei ist nicht mehr im .NET SDK enthalten. Inkompatible Quelle
dotnet new sln Standardmäßiges SLNX-Dateiformat Verhaltensänderung
dotnet package list führt wiederherstellung aus Verhaltensänderung
dotnet restore Überwacht transitive Pakete Verhaltensänderung
dotnet tool install --local erstellt standardmäßig manifest Verhaltensänderung
dotnet watch protokolle an stderr anstelle von stdout Verhaltensänderung
project.json wird nicht in dotnet restore unterstützt Inkompatible Quelle
SHA-1-Fingerabdruckunterstützung ist veraltet dotnet nuget sign Verhaltensänderung
MSBUILDCUSTOMBUILDEVENTWARNING-Escapehatch wurde entfernt Verhaltensänderung
Umgang mit benutzerdefinierten MSBuild-Kulturressourcen Verhaltensänderung
NU1510 wird für direkte Referenzen ausgelöst, die von NuGet entfernt wurden Inkompatible Quelle
NuGet-Pakete ohne Laufzeitressourcen sind nicht in deps.jsonenthalten Inkompatible Quelle
PackageReference ohne Version löst einen Fehler aus. Verhaltensänderung
PrunePackageReference privatisiert direkte prunable references Verhaltensänderung
HTTP-Warnungen wurden zu Fehlern in dotnet package list und dotnet package search Behavior Change/Quelle inkompatibel
NUGET_ENABLE_ENHANCED_HTTP_RETRY Umgebungsvariable entfernt Verhaltensänderung
NuGet protokolliert einen Fehler für ungültige Paket-IDs. Verhaltensänderung
ToolCommandName nicht für Nicht-Toolpakete festgelegt Inkompatible Quelle

Serialisierung

Title Art der Änderung
System.Text.Json sucht nach Eigenschaftsnamenkonflikten Verhaltensänderung
XmlSerializer ignoriert keine Eigenschaften mehr, die mit "ObsoleteAttribute" gekennzeichnet sind. Verhaltensänderung

Windows Forms

Title Art der Änderung
Veraltete APIs Inkompatible Quelle
Anwendungen, die sowohl auf WPF als auch WinForms verweisen, müssen zwischen MenuItem- und ContextMenu-Typen unterscheiden Inkompatible Quelle
Parameter in HtmlElement.InsertAdjacentElement umbenannt Inkompatible Quelle
Bild des TreeView-Kontrollkästchens abgeschnitten Verhaltensänderung
StatusStrip verwendet standardmäßig System RenderMode Verhaltensänderung
System.Drawing OutOfMemoryException zu ExternalException geändert Verhaltensänderung

Windows Presentation Foundation (WPF)

Title Art der Änderung
Leere ColumnDefinitions und RowDefinitions sind unzulässig. Inkompatible Quelle
Falsche Verwendung von DynamicResource verursacht Anwendungsabsturz Inkompatibilität/Verhaltensänderung der Quelle