Freigeben über


Veraltete APIs ohne Standarddiagnose-IDs (.NET 7)

Einige APIs wurden ab .NET 7 als veraltet markiert. Dieser Breaking Change ist spezifisch für APIs, die mit einer benutzerdefinierten Diagnose-ID als veraltet markiert wurden. Das Unterdrücken der Standard-Obsoletionsdiagnose-ID (in diesem Fall 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 erzeugt die Verwendung dieser APIs eine Kompilierungszeitwarnung oder einen Fehler mit einer benutzerdefinierten Diagnose-ID. Die Verwendung benutzerdefinierter Diagnose-IDs ermöglicht es Ihnen, die Veraltungswarnungen individuell zu unterdrücken, anstatt sie alle pauschal zu deaktivieren.

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

Diagnose-ID BESCHREIBUNG Schweregrad
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 AssemblyNameMitgliederHashAlgorithm, 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 Factory-Methoden, 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ührte Version

.NET 7

Art der einschneidenden Änderung

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