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
Empfohlene Maßnahme
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
- System.Reflection.Assembly.ReflectionOnlyLoad
- System.Reflection.Assembly.ReflectionOnlyLoadFrom(String)
- System.Type.ReflectionOnlyGetType(String, Boolean, Boolean)
SYSLIB0019
- System.Runtime.InteropServices.RuntimeEnvironment.SystemConfigurationFile
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsIntPtr(Guid, Guid)
- System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeInterfaceAsObject(Guid, Guid)
SYSLIB0020
SYSLIB0021
- System.Security.Cryptography.AesCryptoServiceProvider
- System.Security.Cryptography.AesManaged
- System.Security.Cryptography.DESCryptoServiceProvider
- System.Security.Cryptography.MD5CryptoServiceProvider
- System.Security.Cryptography.RC2CryptoServiceProvider
- System.Security.Cryptography.SHA1CryptoServiceProvider
- System.Security.Cryptography.SHA1Managed
- System.Security.Cryptography.SHA256Managed
- System.Security.Cryptography.SHA256CryptoServiceProvider
- System.Security.Cryptography.SHA384Managed
- System.Security.Cryptography.SHA384CryptoServiceProvider
- System.Security.Cryptography.SHA512Managed
- System.Security.Cryptography.SHA512CryptoServiceProvider
- System.Security.Cryptography.TripleDESCryptoServiceProvider