Auf Englisch lesen

Freigeben über


Breaking Changes in .NET 9

Wenn Sie eine App zu .NET 9 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 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: Vorhandener Code und vorhandene Binärdateien können sich zur Laufzeit unterschiedlich verhalten. Wenn das neue Verhalten unerwünscht ist, muss vorhandener Code aktualisiert und neu kompiliert werden.

Hinweis

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

ASP.NET Core

Container

Titel Art der Änderung Eingeführt in Version
.NET 9-Containerimages installieren zlib nicht mehr Behavior Change Preview 7

Core .NET-Bibliotheken

Titel Art der Änderung Eingeführt in Version
Hinzufügen einer ZipArchiveEntry-Datei mit CompressionLevel legt allgemeine Bit-Flags für zentrale ZIP-Verzeichnisheader fest Behavior Change Preview 5
Geänderte UnsafeAccessor-Unterstützung für nicht geöffnete Generics Behavior Change Vorschau 6
Veraltete APIs mit benutzerdefinierten Diagnose-IDs Quelle inkompatibel (Mehrere)
BigInteger maximale Länge Behavior Change Vorschau 6
BinaryReader.GetString() gibt "\uFFFD" für falsch formatierte Sequenzen zurück. Behavior Change Preview 7
Der Arraytyp „System.Void“ ist nicht zulässig Behavior Change Vorschauversion 1
Standardimplementierungen von Equals() und GetHashCode() lösen Ausnahme für Typen aus, die mit InlineArrayAttribute markiert sind. Behavior Change Vorschau 6
EnumConverter überprüft registrierte Typen, um aufgezählt zu werden Behavior Change Preview 7
FromKeyedServicesAttribute fügt keinen Nichtschlüsselparameter mehr ein Behavior Change RC 1
Anfänglicher IncrementingPollingCounter-Rückruf ist asynchron Behavior Change RC 1
Die Größenbeschränkung der Inlinearraystruktur wird erzwungen. Behavior Change Vorschauversion 1
InMemoryDirectoryInfo stellt Dateien „rootDir“ voran. Behavior Change Vorschauversion 1
Neue TimeSpan.From*()-Überladungen, die ganze Zahlen annehmen Quelle inkompatibel Preview 3
RuntimeHelpers.GetSubArray gibt einen anderen Typ zurück Behavior Change Vorschauversion 1
String.Trim(params ReadOnlySpan<char>) overload removed Quelle/Binär inkompatibel Allgemein verfügbar
Unterstützung leerer Umgebungsvariablen Behavior Change Vorschau 6
ZipArchiveEntry-Namen und Kommentare respektieren das UTF8-Flag Behavior Change RC 1

Kryptografie

Titel Art der Änderung Eingeführt in Version
SafeEvpPKeyHandle.DuplicateHandle erhöht die Referenz des Handle Behavior Change Preview 7
Einige X509Certificate2- und X509Certificate-Konstruktoren sind veraltet Quelle inkompatibel Preview 7
Lebensdauer von Windows Private Key vereinfacht Behavior Change Preview 7

Bereitstellung

Titel Art der Änderung Eingeführt in Version
Veraltete Desktoplaufzeitpakete für Windows/macOS/Linux MonoVM Quelle inkompatibel Preview 7

Interop

Titel Art der Änderung Eingeführt in Version
CET wird standardmäßig unterstützt Binär nicht kompatibel Vorschau 6

JIT-Compiler

Titel Art der Änderung Eingeführt in Version
Konvertierungen von Gleitkomma- in Ganzzahlwerte besitzen jetzt ein Sättigungsverhalten Behavior Change Vorschauversion 4
Entfernen einiger SVE-APIs Quelle inkompatibel RC 2

Netzwerk

Titel Art der Änderung Eingeführt in Version
API-Verschleierungen Quelle inkompatibel Vorschau 6
HttpClient-Metrikbericht server.port bedingungslos Behavior Change Preview 7
HttpClientFactory-Protokollierung bearbeitet die Headerwerte standardmäßig Behavior Change RC 1
HttpClientFactory verwendet SocketsHttpHandler als primären Handler Behavior Change Vorschau 6
HttpListenerRequest.UserAgent ist nullfähig Quelle inkompatibel Vorschauversion 1
URI-Abfrage redaction in HttpClient EventSource-Ereignissen Behavior Change Preview 7
URI-Abfrage redaction in IHttpClientFactory-Protokollen Behavior Change Preview 7

SDK und MSBuild

Titel Art der Änderung Eingeführt in Version
dotnet restore Überwacht transitive Pakete Behavior Change Vorschau 6
dotnet watch Nicht kompatibel mit Hot Reload für alte Frameworks Behavior Change RC 1
dotnet workload erfordert eine Ausgabeänderung Behavior Change Vorschauversion 1
installer Version des Repositorys nicht mehr dokumentiert Behavior Change Preview 5
Terminal-Logger ist standardmäßig Behavior Change Vorschauversion 1
Versionsanforderungen für .NET 9 SDK Quelle inkompatibel Allgemein verfügbar
Warnung für .NET Standard 1.x-Ziel ausgegeben Quelle inkompatibel Vorschau 6
Warnung für .NET 7-Ziel ausgegeben Quelle inkompatibel Allgemein verfügbar

Serialisierung

Titel Art der Änderung Eingeführt in Version
BinaryFormatter löst immer aus Behavior Change Vorschau 6

Windows Forms

Titel Art der Änderung Eingeführt in Version
BindingSource.SortDescriptions gibt keinen Nullwert zurück Behavior Change Vorschauversion 1
Änderungen an Anmerkungen zur NULL-Zulässigkeit Quelle inkompatibel Vorschauversion 1
ComponentDesigner.Initialize löst ArgumentNullException aus Behavior Change Vorschauversion 1
DataGridViewRowAccessibleObject.Name Startzeilenindex Behavior Change Vorschauversion 1
IMsoComponent-Support ist eine wählbare Option Behavior Change Vorschau 2
Neue Sicherheitsanalysetools Quelle inkompatibel RC 1
Keine Ausnahme, wenn DataGridView null ist Behavior Change Vorschauversion 1
PictureBox löst HttpClient-Ausnahmen aus Behavior Change Vorschau 6

WPF

Titel Art der Änderung Eingeführt in Version
GetXmlNamespaceMaps-Typänderung Verhaltensänderung/Quelle inkompatibel Preview 3

Weitere Informationen