Breaking Changes in .NET 5

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

ASP.NET Core

Titel Binärkompatibel Quellkompatibel
ASP.NET Core-Apps deserialisieren Zahlen in Anführungszeichen. ✔️
Die APIs AzureAD.UI und AzureADB2C.UI sind veraltet. ✔️
Die BinaryFormatter-Serialisierungsmethoden sind veraltet. ✔️
Die Ressource im Endpunktrouting ist HttpContext ✔️
Azure-Integrationspakete mit Präfix „Microsoft“ entfernt ✔️
Blazor: Logik für die Routingrangfolge in Blazor-Apps geändert ✔️
Blazor: Aktualisierte Browserunterstützung ✔️ ✔️
Blazor: Unbedeutende Leerzeichen, die vom Compiler entfernt wurden ✔️
Blazor: Die JSObjectReference- und JSInProcessObjectReference-Typen sind intern. ✔️
Blazor: Das Zielframework von NuGet-Paketen wurde geändert ✔️
Blazor: Feature ProtectedBrowserStorage wurde in das freigegebene Framework verschoben ✔️
Blazor: Schreibgeschützte öffentliche RenderTreeFrame-Felder sind jetzt Eigenschaften. ✔️
Blazor: Aktualisierte Validierungslogik für statische Webressourcen ✔️
Kryptografie-APIs werden im Browser nicht unterstützt. ✔️
Erweiterungen: Paketverweisänderungen ✔️
BadHttpRequestException-Typen für Kestrel und IIS sind veraltet. ✔️
HttpClient-Instanzen, die von IHttpClientFactory erstellt wurden, protokollieren Integerstatuscodes ✔️
HttpSys: Erneute Aushandlung für Clientzertifikate standardmäßig deaktiviert ✔️
IIS: Abfragezeichenfolgen für die UrlRewrite-Middleware werden beibehalten ✔️
Kestrel: Standardmäßig erkannte Konfigurationsänderungen ✔️
Kestrel: Standardmäßig unterstützte TLS-Protokollversionen geändert ✔️
Kestrel: HTTP/2 über TLS ist für nicht kompatible Windows-Versionen deaktiviert ✔️ ✔️
Kestrel: Markierung von libuv-Transport als veraltet ✔️
Veraltete Eigenschaften in ConsoleLoggerOptions ✔️
ResourceManagerWithCultureStringLocalizer-Klasse und WithCulture-Schnittstellenmember entfernt ✔️
„Pubternal“-APIs entfernt ✔️
Ein veralteter Konstruktor wurde in der Middleware für Anforderungslokalisierung entfernt ✔️
Middleware: Datenbankfehlerseite als veraltet markiert ✔️
Ausnahmehandlermiddleware löst ursprüngliche Ausnahme aus ✔️ ✔️
ObjectModelValidator ruft eine neue Überladung von Validate auf ✔️
Die Codierung für Cookienamen wurde entfernt ✔️
Die Versionen des IdentityModel-NuGet-Pakets wurden aktualisiert ✔️
SignalR: Optionstyp für das MessagePack-Hubprotokoll geändert ✔️
SignalR: Hub-Protokoll „MessagePack“ wurde verschoben ✔️
UseSignalR- und UseConnections-Methoden entfernt ✔️
CSV-Inhaltstyp in standardkonform geändert ✔️

Codeanalyse

Titel Binärkompatibel Quellkompatibel
CA1416-Warnung ✔️
CA1417-Warnung ✔️
CA1831-Warnung ✔️
CA2013-Warnung ✔️
CA2014-Warnung ✔️
CA2015-Warnung ✔️
CA2200-Warnung ✔️
CA2247-Warnung ✔️

Core .NET-Bibliotheken

Titel Binärkompatibel Quellkompatibel
Assemblybezogene API-Änderungen für Veröffentlichung einer einzelnen Datei ✔️
Die BinaryFormatter-Serialisierungsmethoden sind veraltet. ✔️
Codezugriffssicherheit-APIs sind veraltet. ✔️
CreateCounterSetInstance löst InvalidOperationException aus. ✔️
Das ActivityIdFormat-Standardformat ist W3C ✔️
Environment.OSVersion gibt die richtige Version aus. ✔️
Der Wert von FrameworkDescription entspricht „.NET“ und nicht „.NET Core“. ✔️
Die GAC-APIs sind veraltet. ✔️
Hardwareinterne IsSupported-Überprüfungen ✔️
IntPtr und UIntPtr implementieren IFormattable ✔️
LastIndexOf behandelt leere Suchzeichenfolgen. ✔️
URI-Pfade mit Nicht-ASCII-Zeichen auf UNIX ✔️
Veraltete APIs ohne Standarddiagnose-IDs ✔️
Veraltete Eigenschaften in ConsoleLoggerOptions ✔️
Komplexität von OrderBy.First in LINQ ✔️
OSPlatform-Attribute wurden umbenannt oder entfernt ✔️
Das Paket Microsoft.DotNet.PlatformAbstractions wurde entfernt ✔️
PrincipalPermissionAttribute ist veraltet ✔️
Parameternamensänderungen aus Vorschauversionen ✔️
Änderung des Parameternamen in Verweisassemblys ✔️
Remoting-APIs sind veraltet ✔️
Reihenfolge der „Activity.Tags“-Liste ist umgekehrt. ✔️
SSE- und SSE2-Vergleichsmethoden behandeln NaN. ✔️
Thread.Abort ist veraltet ✔️
URI-Erkennung von UNC-Pfaden unter UNIX ✔️
UTF-7-Codepfade sind veraltet ✔️
Behavior Change für Vector2.Lerp und Vector4.Lerp ✔️
Vector<T> löst „NotSupportedException“ aus ✔️

Kryptografie

Titel Binärkompatibel Quellkompatibel
Kryptografie-APIs werden im Browser nicht unterstützt. ✔️
Cryptography.Oid ist nur init. ✔️
TLS-Standardverschlüsselungssuites unter Linux ✔️
Create()-Überladungen für kryptografische Abstraktionen sind veraltet. ✔️
Der Standardwert für FeedbackSize wurde geändert. ✔️

Entity Framework Core

Breaking Changes in EF Core 5.0

Globalisierung

Titel Binärkompatibel Quellkompatibel
Verwenden von ICU-Bibliotheken unter Windows ✔️
StringInfo und TextElementEnumerator sind mit UAX29 kompatibel. ✔️
Geänderte Unicode-Kategorie für Zeichen in Lateinisch-1 ✔️
TextInfo.ListSeparator-Werte geändert ✔️

Interop

Titel Binärkompatibel Quellkompatibel
Die Unterstützung für WinRT wurde entfernt. ✔️
Bei Umwandlung von RCW in InterfaceIsIInspectable wird eine Ausnahme ausgelöst. ✔️
Keine A/W-Überprüfung des Suffixes auf anderen Plattformen als Windows ✔️

Netzwerk

Titel Binärkompatibel Quellkompatibel
Verarbeitung von Cookiepfaden ist mit RFC 6265 konform. ✔️
LocalEndPoint wird nach dem Aufrufen von SendToAsync aktualisiert ✔️
MulticastOption.Group akzeptiert keine NULL-Werte. ✔️
Streams ermöglichen aufeinanderfolgende Begin-Vorgänge. ✔️
Entfernung von WinHttpHandler aus der .NET-Runtime ✔️

SDK

Titel Binärkompatibel Quellkompatibel
Directory.Packages.props-Dateien werden standardmäßig importiert. ✔️
Fehler wird generiert, wenn ausführbares Projekt auf nicht übereinstimmendes ausführbares Projekt verweist ✔️
FrameworkReference wurde durch WindowsSdkPackageVersion für Windows SDK ersetzt ✔️
NETCOREAPP3_1-Präprozessorsymbol nicht definiert ✔️
OutputType auf WinExe festgelegt ✔️
Behavior Change von PublishDepsFilePath ✔️
TargetFramework-Änderung von „netcoreapp“ in „net“ ✔️
WinForms- und WPF-Apps verwenden Microsoft.NET.Sdk ✔️

Sicherheit

Titel Binärkompatibel Quellkompatibel
Codezugriffssicherheit-APIs sind veraltet. ✔️
PrincipalPermissionAttribute ist veraltet ✔️
UTF-7-Codepfade sind veraltet ✔️

Serialisierung

Titel Binärkompatibel Quellkompatibel
Ausnahmen für BinaryFormatter.Deserialize-Umbrüche ✔️
JsonSerializer.Deserialize erfordert Zeichenfolgen mit einzelnem Zeichen ✔️
ASP.NET Core-Apps deserialisieren Zahlen in Anführungszeichen. ✔️
JsonSerializer.Serialize löst ArgumentNullException aus. ✔️
Nicht öffentliche parameterlose Konstruktoren, die nicht für die Deserialisierung verwendet werden ✔️
Beim Serialisieren von Schlüssel-Wert-Paaren werden Optionen berücksichtigt. ✔️

Windows Forms

Titel Binärkompatibel Quellkompatibel
Nativer Code kann nicht auf Windows Forms-Objekte zugreifen. ✔️
OutputType auf WinExe festgelegt ✔️
DataGridView setzt benutzerdefinierte Schriftarten nicht zurück. ✔️
Methoden lösen ArgumentException aus. ✔️
Methoden lösen ArgumentNullException aus. ✔️
Eigenschaften lösen ArgumentOutOfRangeException aus. ✔️
TextFormatFlags.ModifyString ist veraltet ✔️
DataGridView-APIs lösen InvalidOperationException aus. ✔️
WinForms-Apps verwenden Microsoft.NET.Sdk. ✔️
Statusleisten-Steuerelement wurde entfernt ✔️

WPF

Titel Binärkompatibel Quellkompatibel
OutputType auf WinExe festgelegt ✔️
WPF-Apps verwenden Microsoft.NET.Sdk. ✔️