Freigeben über


Änderungen mit Auswirkungen in .NET 8

Wenn Sie eine App zu .NET 8 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 auf Binärebene inkompatibel, mit dem Quellcode inkompatibel oder als Verhaltensänderung kategorisiert:

  • Binär inkompatibel: Wenn sie mit der neuen Runtime oder Komponente ausgeführt werden, kann bei vorhandenen Binärdateien eine einschneidende Änderung im Verhalten auftreten, zum Beispiel Probleme 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.

ASP.NET Kern

Weitere Informationen finden Sie unter "Grundlegende Änderungen in ASP.NET Core 8".

Container

Titel Art der Änderung
Paket „ca-certificates“ aus Alpine-Images entfernt Binär nicht kompatibel
Debian-Containerimages, aktualisiert auf Debian 12 Binärinkompatibilität/Verhaltensänderung
Standardport ASP.NET Core zu 8080 geändert Verhaltensänderung
Kerberos-Paket aus Alpine- und Debian-Images entfernt Binär nicht kompatibel
„libintl“-Paket aus Alpine-Images entfernt Verhaltensänderung
Container-Tags für mehrere Plattformen nur für Linux verfügbar Verhaltensänderung
Neuer „App“-Benutzer in Linux-Images Verhaltensänderung

Core .NET-Bibliotheken

Titel Art der Änderung
Name des Aktivitätsvorgangs bei NULL Verhaltensänderung
Verhalten von AnonymousPipeServerStream.Dispose Verhaltensänderung
Veraltete APIs mit benutzerdefinierten Diagnose-IDs Quelle inkompatibel
Backslash-Zuordnung in Unix-Dateipfaden Verhaltensänderung
Base64.DecodeFromUtf8-Methoden ignorieren Leerzeichen Verhaltensänderung
Boolesch-unterstützter Enumerationstypsupport wurde entfernt Verhaltensänderung
Complex.ToString-Format geändert in <a; b> Verhaltensänderung
Auflistung des aktuellen Verzeichnispfades eines Laufwerks Verhaltensänderung
Enumerable.Sum löst neue OverflowException für einige Eingaben aus Verhaltensänderung
FileStream-Schreibvorgänge beim Schließen der Pipe Verhaltensänderung
FindSystemTimeZoneById gibt kein neues Objekt zurück Verhaltensänderung
GC.GetGeneration gibt möglicherweise „Int32.MaxValue“ zurück. Verhaltensänderung
GetFolderPath-Verhalten unter Unix Verhaltensänderung
GetSystemVersion gibt nicht mehr ImageRuntimeVersion zurück Verhaltensänderung
ITypeDescriptorContext Nullable-Anmerkungen Quelle inkompatibel
LDAP-APIs für .NET Standard / .NET Framework nicht verfügbar Binär nicht kompatibel
Veraltetes Console.ReadKey entfernt Verhaltensänderung
Methoden-Generatoren generieren Parameter, wobei HasDefaultValue auf „false“ gesetzt ist Verhaltensänderung
Paketteil-URIs können jetzt in System.IO.Packaging unabhängig von der Groß-/Kleinschreibung verglichen werden. Verhaltensänderung
ProcessStartInfo.WindowStyle wird beachtet, wenn UseShellExecute auf „false“ steht Verhaltensänderung
RuntimeIdentifier gibt Plattform zurück, für die die Runtime erstellt wurde Verhaltensänderung
Type.GetType löst Ausnahme für alle ungültigen Elementtypen aus Verhaltensänderung

Kryptografie

Titel Art der Änderung Eingeführt
Größe des AesGcm-Authentifizierungstags auf macOS Verhaltensänderung Vorschauversion 1
RSA.EncryptValue und RSA.DecryptValue veraltet Quelle inkompatibel Vorschauversion 1

Bereitstellung

Titel Art der Änderung
Host bestimmt RID-spezifische Ressourcen Binär inkompatibel/Verhaltensänderung
.NET Monitor umfasst nur distroless Images Verhaltensänderung
.NET-Pakete für openSUSE und SLES hängen von OpenSSL 3.x ab. Verhaltensänderung
StripSymbols ist standardmäßig auf TRUE festgelegt. Verhaltensänderung

Entity Framework Core (ein Framework zum Arbeiten mit Datenbanken)

Siehe Grundlegende Änderungen in EF Core 8.

Erweiterungen

Titel Art der Änderung
ActivatorUtilities.CreateInstance verhält sich konsistent Verhaltensänderung
ActivatorUtilities.CreateInstance erfordert einen Nicht-NULL-Anbieter Verhaltensänderung
ConfigurationBinder überspringt im Hintergrund ungültige Arrayelemente Verhaltensänderung
ConfigurationBinder löst bei nicht übereinstimmendem Wert aus Verhaltensänderung
Das Paket ConfigurationManager verweist nicht mehr auf System.Security.Permissions Quelle inkompatibel
Das Paket DirectoryServices verweist nicht mehr auf System.Security.Permissions Quelle inkompatibel
Leere Schlüssel, die dem Wörterbuch durch Konfigurationsbinder hinzugefügt werden Verhaltensänderung
FromKeyedServicesAttribute.Key kann null sein Quelle inkompatibel
HostApplicationBuilderSettings.Args werden von dem HostApplicationBuilder-Constructor berücksichtigt Verhaltensänderung
„ManagementDateTimeConverter.ToDateTime“ gibt eine lokale Zeit zurück. Verhaltensänderung
System.Formats.Cbor DateTimeOffset-Formatierungsänderung Verhaltensänderung

Globalisierung

Titel Art der Änderung
Datums- und Uhrzeitkonverter berücksichtigen das Kulturargument. Verhaltensänderung
TwoDigitYearMax lautet standardmäßig 2049 Verhaltensänderung

Interoperabilität

Titel Art der Änderung
CreateObjectFlags.Unwrap entpackt nur bei der Zielinstanz Verhaltensänderung
Benutzerdefinierte Marshaldienste erfordern zusätzliche Mitglieder Quelle inkompatibel
Die IDispatchImplAttribute-API wird entfernt Binär nicht kompatibel
Der implizite öffentliche Standardkonstruktor JSFunctionBinding wurde entfernt Binär nicht kompatibel
SafeHandle-Typen müssen über öffentlichen Konstruktor verfügen Quelle inkompatibel
Die systemeigene Linux-Bibliotheksauflösung verwendet nicht mehr netcoredeps Verhaltensänderung

Netzwerk

Titel Art der Änderung
SendFile löst für verbindungslose Sockets NotSupportedException aus Verhaltensänderung
Benutzerinformationen in URIs vom Typ mailto: werden verglichen. Verhaltensänderung

Spiegelung

Titel Art der Änderung
IntPtr wird nicht mehr für Funktionszeigertypen verwendet. Verhaltensänderung

Softwareentwicklungskit (SDK)

Titel Art der Änderung
CLI-Konsolenausgabe verwendet UTF-8 Verhaltensänderung/Quelle und Binärdatei inkompatibel
Nach Abschluss ist die Konsolencodierung nicht UTF-8 Verhaltensänderung/Binär nicht kompatibel
Container verwenden standardmäßig das Tag „latest“ Verhaltensänderung
„dotnet pack“ verwendet die Release-Konfiguration. Verhaltensänderung/Quelle inkompatibel
„dotnet publish“ verwendet die Release-Konfiguration. Verhaltensänderung/Quelle inkompatibel
Doppelte Ausgabe bei -getItem, -getProperty und -getTargetResult Verhaltensänderung
Implizites using für System.Net.Http wird nicht mehr hinzugefügt Verhaltensänderung/Quelle inkompatibel
MSBuild benutzerdefinierte abgeleitete Build-Ereignisse sind veraltet Verhaltensänderung
MSBuild berücksichtigt DOTNET_CLI_UI_LANGUAGE Verhaltensänderung
Laufzeitspezifische Apps nicht eigenständig Quelle/Binär inkompatibel
Die Option „--arch“ impliziert keine Eigenständigkeit. Verhaltensänderung
„dotnet restore“ erzeugt Sicherheitsrisikowarnungen Verhaltensänderung
"dotnet list package" warnt, wenn die Quelle keine Sicherheitsrisikodaten bereitstellt. Verhaltensänderung
SDK verwendet ein kleineres RID-Diagramm Verhaltensänderung/Quelle inkompatibel
Festlegen von DebugSymbols auf FALSE deaktiviert die PDB-Generierung Verhaltensänderung
Source Link ist jetzt im .NET SDK enthalten Quelle inkompatibel
Das Kürzen darf nicht mit .NET Standard oder .NET Framework verwendet werden. Verhaltensänderung
Ungelistete Pakete werden nicht standardmäßig für .NET-Tools installiert Verhaltensänderung
Benutzerdatei wird in externe Builds importiert Verhaltensänderung
Versionsanforderungen für .NET 8 SDK Quelle inkompatibel

Serialisierung

Titel Art der Änderung
BinaryFormatter für die meisten Projekte deaktiviert Verhaltensänderung
PublishedTrimmed-Projekte schlagen bei reflexionsbasierter Serialisierung fehl Verhaltensänderung
Reflektionsbasiertes Deserialisierungsmodul löst Metadaten eifrig auf Verhaltensänderung

Windows Forms

Titel Art der Änderung
Zertifikate werden vor dem Laden von Remoteimages in PictureBox überprüft Verhaltensänderung
DateTimePicker.Text ist eine leere Zeichenfolge. Verhaltensänderung
DefaultValueAttribute wurde aus einigen Eigenschaften entfernt Verhaltensänderung
ExceptionCollection ctor löst ArgumentException aus Verhaltensänderung
Skalieren von Formularen gemäß AutoScaleMode Verhaltensänderung
ImageList.ColorDepth-Standard ist Depth32Bit Verhaltensänderung
System.Windows.Extensions verweist nicht auf System.Drawing.Common Quelle inkompatibel
TableLayoutStyleCollection löst ArgumentException aus Verhaltensänderung
Formulare der obersten Ebene skalieren die minimale und maximale Größe auf DPI Verhaltensänderung
Kennzeichnung von WFDEV002 als veraltet ist jetzt ein Fehler Quelle inkompatibel

Siehe auch