Teilen über


Breaking Changes in .NET 5

Wenn Sie eine App zu .NET 5 migrieren, können sich die hier aufgeführten wichtigen Änderungen auf Sie auswirken. Änderungen werden nach Technologiebereich gruppiert, z. B. ASP.NET Core oder Kryptografie.

In diesem Artikel wird angegeben, ob jede breaking change binär kompatibel oder Quell kompatibel ist.

  • Binärkompatibel : Vorhandene Binärdateien werden ohne erneute Kompilierung erfolgreich geladen und ausgeführt, und das Laufzeitverhalten ändert sich nicht.
  • Source kompatibel - Der Quellcode wird erfolgreich kompiliert, ohne Änderungen vorzunehmen, wenn er auf die neue Laufzeitumgebung abzielt oder das neue SDK oder die neue Komponente verwendet wird.

ASP.NET Kern

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

Codeanalyse

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

.NET-Kernbibliotheken

Titel Binärkompatibel Quellkompatibel
Assembly-bezogene API-Änderungen für die Einzeldateiveröffentlichung ✔️
BinaryFormatter Serialization-Methoden sind veraltet ✔️
Codezugriffssicherheits-APIs sind veraltet ✔️
CreateCounterSetInstance löst InvalidOperationException aus. ✔️
Standard-ActivityIdFormat ist W3C ✔️
Environment.OSVersion gibt die richtige Version zurück. ✔️
Der Wert von FrameworkDescription ist .NET nicht .NET Core. ✔️
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 auf ConsoleLoggerOptions ✔️
Komplexität von LINQ OrderBy.First ✔️
OSPlatform-Attribute umbenannt oder entfernt ✔️
Microsoft.DotNet.PlatformAbstractions-Paket entfernt ✔️
PrincipalPermissionAttribute ist veraltet ✔️
Parameternamenänderungen aus Vorschauversionen ✔️
Änderungen der Parameternamen in Referenzassemblies ✔️
Remoting-APIs sind veraltet ✔️
Die Reihenfolge der Liste "Activity.Tags" wird umgekehrt. ✔️
SSE- und SSE2-Vergleichsmethoden behandeln NaN ✔️
Thread.Abort ist veraltet ✔️
URI-Erkennung von UNC-Pfaden auf Unix ✔️
UTF-7-Codepfade sind veraltet ✔️
Verhaltensänderung für Vector2.Lerp und Vector4.Lerp ✔️
Vector<T> löst NotSupportedException aus ✔️

Kryptographie

Titel Binärkompatibel Quellkompatibel
Kryptografie-APIs werden im Browser nicht unterstützt ✔️
Cryptography.Oid ist nur init. ✔️
Standardmäßige TLS-Verschlüsselungssammlungen unter Linux ✔️
Create()-Überladungen für kryptografische Abstraktionen sind veraltet. ✔️
Standardmäßiger FeedbackSize-Wert geändert ✔️

Entity Framework Core (ein Framework zum Arbeiten mit Datenbanken)

Siehe Grundlegende Änderungen in EF Core 5.0.

Globalisierung

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

Interoperabilität

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

Vernetzung

Titel Binärkompatibel Quellkompatibel
Die Verarbeitung von Cookiepfaden entspricht RFC 6265 ✔️
LocalEndPoint wird nach dem Aufrufen von SendToAsync aktualisiert. ✔️
MulticastOption.Group akzeptiert null nicht ✔️
Datenströme ermöglichen aufeinander folgende Begin-Vorgänge ✔️
WinHttpHandler wurde aus .NET-Runtime entfernt. ✔️

Softwareentwicklungskit (SDK)

Titel Binärkompatibel Quellkompatibel
Directory.Packages.props-Dateien, die standardmäßig importiert wurden ✔️
Fehler, der generiert wird, wenn ein ausführbares Projekt auf nicht übereinstimmende ausführbare Dateien verweist ✔️
FrameworkReference ersetzt durch WindowsSdkPackageVersion für Windows SDK ✔️
NETCOREAPP3_1 Präprozessorsymbol nicht definiert ✔️
OutputType auf WinExe festgelegt ✔️
PublishDepsFilePath-Verhaltensänderung ✔️
TargetFramework-Änderung von netcoreapp zu net ✔️
WinForms- und WPF-Apps verwenden Microsoft.NET.Sdk ✔️

Sicherheit

Titel Binärkompatibel Quellkompatibel
Codezugriffssicherheits-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 eine einstellige Zeichenfolge ✔️
ASP.NET Core-Apps deserialisieren zitierte Zahlen ✔️
JsonSerializer.Serialize löst ArgumentNullException aus. ✔️
Nicht öffentliche, parameterlose Konstruktoren, die nicht für die Deserialisierung verwendet werden ✔️
Optionen werden beim Serialisieren von Schlüsselwertpaaren berücksichtigt. ✔️

Windows Forms

Titel Binärkompatibel Quellkompatibel
Systemeigener Code kann nicht auf Windows Forms-Objekte zugreifen ✔️
OutputType auf WinExe festgelegt ✔️
DataGridView setzt keine benutzerdefinierten Schriftarten 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 ✔️
Bedienelemente der Statusleiste entfernt ✔️

WPF (Windows Presentation Foundation)

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

Siehe auch