Veraltete APIs ohne Standarddiagnose-IDs (.NET 6)

Einige APIs sind ab .NET 6 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 6 und höheren Versionen erzeugt die Verwendung dieser APIs zur Kompilierzeit eine Warnung oder einen 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
SYSLIB0013 Uri.EscapeUriString(String) kann die URI-Zeichenfolge in einigen Fällen beschädigt werden. Erwägen Sie stattdessen die Verwendung von Uri.EscapeDataString(String) für Komponenten von Abfragezeichenfolgen. Warnung
SYSLIB0014 WebRequest, HttpWebRequest, ServicePoint und WebClient sind veraltet. Verwenden Sie stattdessen HttpClient. Warnung
SYSLIB0015 DisablePrivateReflectionAttribute hat in .NET 6+ keine Auswirkungen. Warnung
SYSLIB0016 Verwenden Sie die Graphics.GetContextInfo-Überladungen, die auch Argumente akzeptieren, um eine bessere Leistung bei weniger Zuordnungen zu erzielen. Warnung
SYSLIB0017 Die Signierung mit starkem Namen wird nicht unterstützt und löst PlatformNotSupportedException aus. Warnung
SYSLIB0018 Das auf Reflexion beschränkte Laden wird nicht unterstützt und löst PlatformNotSupportedException aus. Warnung
SYSLIB0019 Die Member SystemConfigurationFile, GetRuntimeInterfaceAsIntPtr(Guid, Guid) und GetRuntimeInterfaceAsObject(Guid, Guid) von System.Runtime.InteropServices.RuntimeEnvironment werden nicht mehr unterstützt und lösen eine PlatformNotSupportedException aus. Warnung
SYSLIB0020 JsonSerializerOptions.IgnoreNullValues ist veraltet. Um NULL-Werte beim Serialisieren zu ignorieren, legen Sie DefaultIgnoreCondition auf JsonIgnoreCondition.WhenWritingNull fest. Warnung
SYSLIB0021 Abgeleitete kryptografische Typen sind veraltet. Verwenden Sie stattdessen die Create-Methode für den Basistyp. Warnung
SYSLIB0022 Die Typen Rijndael und RijndaelManaged sind veraltet. Verwenden Sie stattdessen Aes. Warnung
SYSLIB0023 RNGCryptoServiceProvider ist veraltet. Um eine Zufallszahl zu generieren, verwenden Sie stattdessen eine der statischen RandomNumberGenerator-Methoden. Warnung
SYSLIB0024 Das Erstellen und Entladen von AppDomains wird nicht unterstützt und löst eine Ausnahme aus. Warnung
SYSLIB0025 SuppressIldasmAttribute hat in .NET 6+ keine Auswirkungen. Warnung
SYSLIB0026 X509Certificate und X509Certificate2 sind unveränderlich. Verwenden Sie den entsprechenden Konstruktor, um ein neues Zertifikat zu erstellen. Warnung
SYSLIB0027 PublicKey.Key ist veraltet. Verwenden Sie eine geeignete Methode, um den öffentlichen Schlüssel abzurufen, z. B. GetRSAPublicKey(). Warnung
SYSLIB0028 X509Certificate2.PrivateKey ist veraltet. Verwenden Sie eine geeignete Methode, um den öffentlichen Schlüssel abzurufen, z. B. RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2), oder verwenden Sie die Methode X509Certificate2.CopyWithPrivateKey(ECDiffieHellman), um eine neue Instanz mit einem privaten Schlüssel zu erstellen. Warnung
SYSLIB0029 ProduceLegacyHmacValues ist veraltet. Das Generieren von HMAC-Legacywerten wird nicht mehr unterstützt. Warnung
SYSLIB0030 HMACSHA1 verwendet immer die Algorithmusimplementierung, die von der Plattform bereitgestellt wird. Verwenden Sie einen Konstruktor ohne den Parameter useManagedSha1. Warnung
SYSLIB0031 CryptoConfig.EncodeOID(String) ist veraltet. Verwenden Sie die in System.Formats.Asn1 bereitgestellte ASN.1-Funktionalität. Warnung
SYSLIB0032 Die Wiederherstellung nach beschädigten Prozessstatus-Ausnahmen wird nicht unterstützt; HandleProcessCorruptedStateExceptionsAttribute wird ignoriert. Warnung
SYSLIB0033 Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) ist veraltet und wird nicht unterstützt. Verwenden Sie stattdessen PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]). Warnung
SYSLIB0034 CmsSigner(CspParameters) ist veraltet. Verwenden Sie stattdessen einen alternativen Konstruktor. Warnung
SYSLIB0035 SignerInfo.ComputeCounterSignature() ist veraltet. Verwenden Sie stattdessen die Überladung, die ein CmsSigner akzeptiert. Warnung

Eingeführt in Version

.NET 6

  • 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

SYSLIB0013

SYSLIB0014

SYSLIB0015

SYSLIB0016

SYSLIB0017

SYSLIB0018

SYSLIB0019

SYSLIB0020

SYSLIB0021

SYSLIB0022

SYSLIB0023

SYSLIB0024

SYSLIB0025

SYSLIB0026

SYSLIB0027

SYSLIB0028

SYSLIB0029

SYSLIB0030

SYSLIB0031

SYSLIB0032

SYSLIB0033

SYSLIB0034

SYSLIB0035

Siehe auch