Veraltete APIs ohne Standarddiagnose-IDs (.NET 7)

Einige APIs sind ab .NET 7 als veraltet gekennzeichnet. Dieser Breaking Change ist spezifisch für APIs, die mit einer benutzerdefinierten Diagnose-ID als veraltet markiert wurden. Das Unterdrücken der Standardveraltungsdiagnose-ID (CS0618 für den C#-Compiler) unterdrückt nicht die Warnungen, die der Compiler generiert, wenn diese APIs verwendet werden.

Änderungsbeschreibung

In früheren .NET-Versionen können diese APIs ohne eine Buildwarnung verwendet werden. In .NET 7 und höheren Versionen führt die Verwendung dieser APIs zur Kompilierzeit zu einer Warnung oder einem Fehler mit einer benutzerdefinierten Diagnose-ID. Durch die Verwendung benutzerdefinierter Diagnose-IDs können Sie die veralteten Warnungen einzeln anstatt alle zusammen unterdrücken.

In der folgenden Tabelle werden die benutzerdefinierten Diagnose-IDs und die zugehörigen Warnmeldungen für veraltete APIs aufgelistet.

Diagnose-ID BESCHREIBUNG severity
SYSLIB0036 Regex.CompileToAssembly ist veraltet und wird nicht unterstützt. Verwenden Sie stattdessen RegexGeneratorAttribute mit dem Quellen-Generator für reguläre Ausdrücke. Warnung
SYSLIB0037 AssemblyName-Member-HashAlgorithm, ProcessorArchitecture und VersionCompatibility sind veraltet und werden nicht unterstützt. Warnung
SYSLIB0038 SerializationFormat.Binary ist veraltet und sollte nicht verwendet werden. Warnung
SYSLIB0039 Die TLS-Versionen 1.0 und 1.1 weisen bekannte Sicherheitsrisiken auf und werden nicht empfohlen. Verwenden Sie stattdessen eine neuere TLS-Version, oder verwenden Sie SslProtocols.None, um die Standardeinstellungen des Betriebssystems zu verschieben. Warnung
SYSLIB0040 EncryptionPolicy.NoEncryption und EncryptionPolicy.AllowNoEncryption reduzieren die Sicherheit erheblich und sollten nicht im Produktionscode verwendet werden. Warnung
SYSLIB0041 Standardhashalgorithmus und Iterationsanzahl in Rfc2898DeriveBytes-Konstruktoren sind veraltet und unsicher. Verwenden Sie einen Konstruktor, der den Hashalgorithmus und die Anzahl der Iterationen akzeptiert. Warnung
SYSLIB0042 ToXmlString und FromXmlString bieten keine Implementierung für ECC-Typen (Elliptic Curve Cryptography, Kryptografie für elliptische Kurve) und sind veraltet. Verwenden Sie ein standardmäßiges Import- und Exportformat wie ExportSubjectPublicKeyInfo oder ImportSubjectPublicKeyInfo für öffentliche Schlüssel und ExportPkcs8PrivateKey oder ImportPkcs8PrivateKey für private Schlüssel. Warnung
SYSLIB0043 ECDiffieHellmanPublicKey.ToByteArray() und der zugeordnete Konstruktor verfügen nicht über eine konsistente und interoperable Implementierung auf allen Plattformen. Verwenden Sie stattdessen ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo(). Warnung
SYSLIB0044 AssemblyName.CodeBase und AssemblyName.EscapedCodeBase sind veraltet. Warnung
SYSLIB0045 Kryptografische Factorymethoden, die einen Algorithmusnamen akzeptieren, sind veraltet. Verwenden Sie stattdessen die parameterlose Factorymethode Create für den Algorithmustyp. Warnung
SYSLIB0047 XmlSecureResolver ist veraltet. Verwenden Sie stattdessen XmlResolver.ThrowingResolver, um die Auflösung externer XML-Ressourcen zu verbieten. Warnung

Eingeführt in Version

.NET 7

Typ des Breaking Changes

Diese veralteten APIs können sich auf die Quellkompatibilität auswirken.

  • Befolgen Sie die Anweisungen für die einzelnen Diagnose-IDs, indem Sie den URL-Link verwenden, der in der Warnung bereitgestellt wird.

  • Warnungen oder Fehler für diese veralteten Elemente können nicht mithilfe der Standarddiagnose-ID für veraltete Typen oder Member unterdrückt werden. Verwenden Sie stattdessen den benutzerdefinierten Diagnose-ID-Wert im Format SYSLIBxxxx.

Betroffene APIs

SYSLIB0036

SYSLIB0037

SYSLIB0038

SYSLIB0039

SYSLIB0040

SYSLIB0041

SYSLIB0042

SYSLIB0043

SYSLIB0045

SYSLIB0047

Siehe auch