Breaking Changes in .NET 6

Wenn Sie eine App zu .NET 6 migrieren, sind Sie möglicherweise von den hier aufgeführten Breaking Changes betroffen. Änderungen werden nach Technologiebereich gruppiert, z. B. ASP.NET Core oder Windows Forms.

In diesem Artikel werden die einzelnen Änderungsänderungen als inkompatible Binärdatei oder Quelle kategorisiert:

  • Binärkompatible - Vorhandene Binärdateien können auf eine unterbrechungsfreie Änderung des Verhaltens stoßen, z. B. fehler beim Laden oder Ausführen, oder auf ein anderes Laufzeitverhalten.
  • Inkompatible Quelle – Quellcode kann bei der Ausrichtung auf die neue Laufzeit oder verwendung des neuen SDK oder der neuen Komponente auf eine unterbrechungsfreie Änderung des Verhaltens stoßen. Verhaltensänderungen können Kompilierungsfehler oder unterschiedliche Laufzeitverhalten umfassen.

Hinweis

Dies ist nicht die endgültige Fassung dieses Artikels. Nicht alle Breaking Changes für .NET 6 werden hier aufgeführt. Informationen zu noch nicht veröffentlichten Breaking Changes finden Sie unter Issues of .NET.

ASP.NET Core

Titel Binärkompatibel Quellkompatibel Eingeführt
ActionResult<T> legt StatusCode auf 200 fest ✔️
AddDataAnnotationsValidation-Methode als veraltet erklärt ✔️
Assemblys, die aus dem freigegebenen Microsoft.AspNetCore.App-Framework entfernt wurden ✔️
Blazor: Der Parametername wurde in der RequestImageFileAsync-Methode geändert. ✔️ Vorschauversion 1
Blazor: WebEventDescriptor.EventArgsType-Eigenschaft ersetzt
Blazor: Bytearray-Interop ✔️ Vorschau 6
Changed MessagePack library in @microsoft/signalr-protocol-msgpack ✔️
Die Eigenschaft „ClientCertificate“ löst keine erneute Aushandlung für HttpSys aus ✔️
EndpointName-Metadaten werden nicht automatisch festgelegt ✔️ RC 2
Identität: Standardmäßige Bootstrap-Version der Benutzeroberfläche geändert
Kestrel: Protokollmeldungsattribute geändert ✔️
Microsoft.AspNetCore.Http.Features Aufteilung ✔️
Middleware: HTTPS-Umleitungsmiddleware löst Ausnahme für mehrdeutige HTTPS-Ports aus ✔️
Middleware: Neue Use-Überladung ✔️ Vorschauversion 4
Minimale API-Umbenennungen in RC 1 RC 1
Minimale API-Umbenennungen in RC 2 RC 2
MVC puffert keine IAsyncEnumerable-Typen, wenn System.Text.Json verwendet wird ✔️ Vorschauversion 4
Anmerkungen für Nullable-Verweistypen geändert ✔️
Veraltete und entfernte APIs ✔️ Vorschauversion 1
PreserveCompilationContext nicht standardmäßig konfiguriert ✔️
Razor: Compiler erzeugt keine Views-Assembly mehr ✔️ Vorschauversion 3
Razor: Änderungen der Protokollierungs-ID ✔️ RC1
Razor: RazorEngine-APIs wurden als veraltet gekennzeichnet ✔️ Vorschauversion 1
SignalR: Java-Client auf RxJava3 aktualisiert ✔️ Vorschauversion 4
TryParse- und BindAsync-Methoden werden überprüft RC 2

Container

Titel Binärkompatibel Quellkompatibel Eingeführt
Standardformatierung der Konsolenprotokollierung in Containerimages ✔️ Wartung 6.0.6

Weitere Informationen zu anderen unterbrechungsweisen Änderungen für Container in .NET 6 finden Sie unter .NET 6 Container Release Notes.

Core .NET-Bibliotheken

Titel Binärkompatibel Quellkompatibel Eingeführt
Veraltete APIs ohne Standarddiagnose-IDs ✔️ Vorschauversion 1
Änderungen an Anmerkungen für Nullable-Verweistypen ✔️ Vorschau 1–2
Bedingte Zeichenfolgenauswertung in Debugmethoden ✔️ RC 1
Environment.ProcessorCount-Verhalten unter Windows ✔️ Vorschau 2
File.Replace unter Unix löst Ausnahmen aus, um eine Übereinstimmung mit Windows zu erreichen ✔️ Preview 7
FileStream sperrt Dateien mit freigegebener Sperre unter Unix ✔️ Vorschauversion 1
FileStream synchronisiert den Dateioffset nicht mehr mit dem Betriebssystem Vorschauversion 4
FileStream.Position-Aktualisierung nach Abschluss von ReadAsync oder WriteAsync Vorschauversion 4
Neue Diagnose-IDs für veraltete APIs ✔️ Vorschauversion 5
Neue Nullable-Anmerkung in AssociatedMetadataTypeTypeDescriptionProvider ✔️ RC 2
Neue Überladungen der System.Linq.Queryable-Methode ✔️ Vorschau 3–4
Ältere Frameworkversionen aus Paket gelöscht ✔️ Vorschauversion 5
Parameternamen geändert ✔️ Vorschauversion 1
Parameternamen in von Stream abgeleiteten Typen ✔️ Vorschauversion 1
Teilweise und Null-Byte-Lesevorgänge in DeflateStream, GZipStream und CryptoStream ✔️ Vorschau 6
Festlegen des Zeitstempels für schreibgeschützte Dateien auf Windows ✔️ Wartung 6.0.2
Standardmäßige Zahlenformatanalysegenauigkeit ✔️ Vorschau 2
Statische abstrakte Member in Schnittstellen ✔️ Preview 7
StringBuilder.Append-Überladungen und Auswertungsreihenfolge ✔️ RC 1
ApIs mit starkem Namen lösen PlatformNotSupportedException aus ✔️ Vorschauversion 4
System.Drawing.Common wird nur für Windows unterstützt Preview 7
System.Security.SecurityContext wurde als veraltet markiert ✔️ RC 1
Task.FromResult gibt möglicherweise ein Singleton zurück ✔️ Vorschauversion 1
Nicht behandelte Ausnahmen von einem BackgroundService ✔️ Vorschauversion 4
Änderung der NULL-Zulässigkeit bei XmlDocument.XmlResolver ✔️ RC 1
XNodeReader.GetAttribute-Verhalten für ungültigen Index ✔️ Vorschau 2

Kryptografie

Titel Binärkompatibel Quellkompatibel Eingeführt
CreateEncryptor-Methoden lösen Ausnahme bei falscher Feedbackgröße aus ✔️ Preview 7

Bereitstellung

Titel Binärkompatibel Quellkompatibel Eingeführt
x86-Hostpfad unter 64-Bit-Windows ✔️ ✔️ Wartungsversion

Entity Framework Core

Breaking Changes in EF Core 6

Erweiterungen

Titel Binärkompatibel Quellkompatibel Eingeführt
Überprüfen des Nicht-NULL-Anbieters durch AddProvider ✔️ RC 1
Ausgabe von InvalidDataException durch FileConfigurationProvider.Load ✔️ RC 1
Ausnahme durch Lösen eines verworfenen ServiceProviders ✔️ RC 1

Globalisierung

Titel Binärkompatibel Quellkompatibel Eingeführt
Kulturerstellung und Zuordnung von Groß-/Kleinbuchstaben im globalisierungsinvarianten Modus Preview 7

Interop

Titel Binärkompatibel Quellkompatibel Eingeführt
Statische abstrakte Member in Schnittstellen ✔️ Preview 7

JIT-Compiler

Titel Binärkompatibel Quellkompatibel Eingeführt
Coerce-Aufrufargumente gemäß ECMA-335 ✔️ ✔️ Vorschauversion 1

Netzwerk

Titel Binärkompatibel Quellkompatibel Eingeführt
Port aus SPN für Kerberos und Negotiate entfernt ✔️ RC 1
WebRequest, WebClient und ServicePoint sind veraltet. ✔️ Vorschauversion 1

SDK

Titel Binärkompatibel Quellkompatibel Eingeführt
-p-Option für dotnet run ist veraltet ✔️ Vorschau 6
C#-Code in Vorlagen, die von früheren Versionen nicht unterstützt werden ✔️ ✔️ Preview 7
Implizit enthaltene EditorConfig-Dateien ✔️
Generieren von apphost für macOS ✔️ Vorschau 6
Generieren eines Fehlers für doppelte Dateien in der Veröffentlichungsausgabe ✔️ Vorschauversion 1
„GetTargetFrameworkProperties“ und „GetNearestTargetFramework“ wurden aus dem ProjectReference-Protokoll entfernt ✔️ Vorschauversion 1
Installationsspeicherort für x64 emuliert auf Arm64 ✔️ RC 2
MSBuild unterstützt das Aufrufen von GetType() nicht mehr RC 1
OutputType nicht automatisch auf WinExe festgelegt ✔️ RC 1
Publish ReadyToRun with --no-restore erfordert Änderungen ✔️ 6.0.100
runtimeconfig.dev.json-Datei nicht generiert ✔️ 6.0.100
RuntimeIdentifier-Warnung, wenn „SelfContained“ nicht angegeben ist ✔️ RC 1
Versionsanforderungen für .NET 6 SDK ✔️ ✔️ 6.0.300
Schreiben von Referenzassemblys in IntermediateOutputPath ✔️ 6.0.200

Serialisierung

Titel Binärkompatibel Quellkompatibel Eingeführt
Standardserialisierungsformat für TimeSpan ✔️ Wartung 6.0.2
IAsyncEnumerable-Serialisierung ✔️ Vorschauversion 4
Refactoring der Quellgenerierungs-API für JSON ✔️ RC 2
JsonNumberHandlingAttribute in Auflistungseigenschaften ✔️ RC 1
Neue JsonSerializer-Quellgeneratorüberladungen ✔️ Vorschau 6

Windows Forms

Titel Binärkompatibel Quellkompatibel Eingeführt
C#-Vorlagen verwenden Anwendungsbootstrap ✔️ RC 1
Ausgewählte TableLayoutSettings-Eigenschaften, die eine InvalidEnumArgumentException-Ausnahme auslösen ✔️ Vorschauversion 1
Mit DataGridView verbundene APIs lösen jetzt InvalidOperationException aus ✔️ Vorschauversion 4
ListViewGroupCollection-Methoden lösen neue InvalidOperationException aus ✔️ RC 2
Maximale Textlänge für NotifyIcon.Text erhöht ✔️ Vorschauversion 1
ScaleControl wird nur bei Bedarf aufgerufen ✔️ Wartung 6.0.101
Manche APIs lösen ArgumentNullException aus ✔️ Vorschau 1–4
TreeNodeCollection.Item löst eine Ausnahme aus, wenn der Knoten an anderer Stelle zugewiesen wird. ✔️ Vorschauversion 1