Breaking Changes 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 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.
ASP.NET Core
Titel | Art der Änderung |
---|---|
„ConcurrencyLimiterMiddleware“ ist veraltet. | Quelle inkompatibel |
Benutzerdefinierte Konverter für die Serialisierung entfernt | Behavior Change |
ISystemClock ist veraltet | Quelle inkompatibel |
Minimale APIs: IFormFile-Parameter erfordern Überprüfungen zur Fälschungssicherheit. | Behavior Change |
Middleware zur Ratenbegrenzung erfordert AddRateLimiter | Behavior Change |
Sicherheitstokenereignisse geben ein JSonWebToken wieder | Behavior Change |
TrimMode ist standardmäßig für Web-SDK-Projekte auf „vollständig“ festgelegt | Quelle inkompatibel |
Container
Titel | Art der Änderung |
---|---|
Paket „ca-certificates“ aus Alpine-Images entfernt | Binär nicht kompatibel |
Debian-Containerimages, aktualisiert auf Debian 12 | Binär inkompatibel/Verhaltensänderung |
Standardport ASP.NET Core zu 8080 geändert | Behavior Change |
Kerberos-Paket aus Alpine- und Debian-Images entfernt | Binär nicht kompatibel |
„libintl“-Paket aus Alpine-Images entfernt | Behavior Change |
Container-Tags für mehrere Plattformen nur für Linux verfügbar | Behavior Change |
Neuer „App“-Benutzer in Linux-Images | Behavior Change |
Core .NET-Bibliotheken
Kryptografie
Titel | Art der Änderung | Eingeführt |
---|---|---|
Größe des AesGcm-Authentifizierungstags auf macOS | Behavior Change | 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 enthält nur unfassbare Bilder | Behavior Change |
StripSymbols ist standardmäßig auf TRUE festgelegt. | Behavior Change |
Entity Framework Core
Erweiterungen
Titel | Art der Änderung |
---|---|
ActivatorUtilities.CreateInstance verhält sich konsistent | Behavior Change |
ActivatorUtilities.CreateInstance erfordert einen Nicht-NULL-Anbieter | Behavior Change |
ConfigurationBinder löst bei nicht übereinstimmendem Wert aus | Behavior Change |
Das Paket ConfigurationManager verweist nicht mehr auf System.Security.Permissions | Quelle inkompatibel |
Das Paket ConfigurationManager verweist nicht mehr auf System.Security.Permissions | Quelle inkompatibel |
Leere Schlüssel, die dem Wörterbuch durch Konfigurationsordner hinzugefügt werden | Behavior Change |
HostApplicationBuilderSettings.Args berücksichtigt von HostApplicationBuilder ctor | Behavior Change |
„ManagementDateTimeConverter.ToDateTime“ gibt eine lokale Zeit zurück. | Behavior Change |
System.Formats.Cbor DateTimeOffset-Formatierungsänderung | Behavior Change |
Globalisierung
Titel | Art der Änderung |
---|---|
Datums- und Uhrzeitkonverter berücksichtigen das Kulturargument. | Behavior Change |
TwoDigitYearMax lautet standardmäßig 2049 | Behavior Change |
Interop
Titel | Art der Änderung |
---|---|
CreateObjectFlags.Unwrap wird nur in Zielinstanz entpackt | Behavior Change |
Benutzerdefinierte Marshaller erfordern zusätzliche Member | 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 |
Netzwerk
Titel | Art der Änderung |
---|---|
SendFile löst für verbindungslose Sockets NotSupportedException aus | Behavior Change |
Benutzerinformationen in URIs vom Typ mailto: werden verglichen. |
Behavior Change |
Spiegelung
Titel | Art der Änderung |
---|---|
IntPtr wird nicht mehr für Funktionszeigertypen verwendet. | Behavior Change |
SDK
Serialisierung
Titel | Art der Änderung |
---|---|
BinaryFormatter für die meisten Projekte deaktiviert | Behavior Change |
Fehler bei reflexionsbasierter Serialisierung von PublishedTrimmed-Projekten | Behavior Change |
Reflektionsbasiertes Deserialisierungsmodul löst Metadaten eifrig auf | Behavior Change |
Windows Forms
Titel | Art der Änderung |
---|---|
Ankerlayout wurde geändert | Behavior Change |
Zertifikate werden vor dem Laden von Remoteimages in PictureBox überprüft | Behavior Change |
DateTimePicker.Text ist eine leere Zeichenfolge. | Behavior Change |
DefaultValueAttribute wurde aus einigen Eigenschaften entfernt | Behavior Change |
ExceptionCollection ctor löst ArgumentException aus | Behavior Change |
Skalieren von Formularen gemäß AutoScaleMode | Behavior Change |
ImageList.ColorDepth-Standard ist Depth32Bit | Behavior Change |
System.Windows.Extensions verweist nicht auf System.Drawing.Common | Quelle inkompatibel |
TableLayoutStyleCollection löst ArgumentException aus | Behavior Change |
Formulare der obersten Ebene skalieren die minimale und maximale Größe auf DPI | Behavior Change |
Kennzeichnung von WFDEV002 als veraltet ist jetzt ein Fehler | Quelle inkompatibel |