Share via


既定以外の診断 ID を持つ API の旧型式化 (.NET 6)

.NET 6 以降、一部の API は古いものとしてマークされています。 この重大な変更は、"カスタム診断 ID" を持つ、古いものとしてマークされている API に固有のものです。 既定の旧型式診断 ID (C# コンパイラの場合は CS0618) を抑制しても、これらの API の使用時にコンパイラによって生成される警告は抑制されません。

変更内容

以前のバージョンの .NET では、ビルドの警告なしにこれらの API を使用できます。 .NET 6 以降のバージョンでは、これらの API を使用すると、カスタム診断 ID に関するコンパイル時の警告またはエラーが生成されます。 カスタム診断 ID を使用すると、すべての旧型式であるという警告を一括抑制する代わりに、旧型式であるという警告を個別に抑制することができます。

次の表に、古い API に対するカスタム診断 ID とそれに対応する警告メッセージを示します。

診断 ID 説明 重大度
SYSLIB0013 Uri.EscapeUriString(String) を使用すると、場合によっては、URI 文字列が壊れる可能性があります。 クエリ文字列コンポーネントには、代わりに Uri.EscapeDataString(String) の使用を検討してください。 警告
SYSLIB0014 WebRequestHttpWebRequestServicePointWebClient は古くなっています。 代わりに HttpClient を使用してください 警告
SYSLIB0015 .NET 6 以降では、DisablePrivateReflectionAttribute の効果はありません。 警告
SYSLIB0016 パフォーマンスを向上させて、割り当てを減らすため、引数を受け取る Graphics.GetContextInfo のオーバーロードを使用してください。 警告
SYSLIB0017 厳密な名前の署名がサポートされず、PlatformNotSupportedException がスローされます。 警告
SYSLIB0018 リフレクションのみの読み込みがサポートされず、PlatformNotSupportedException がスローされます。 警告
SYSLIB0019 System.Runtime.InteropServices.RuntimeEnvironment のメンバー SystemConfigurationFileGetRuntimeInterfaceAsIntPtr(Guid, Guid)GetRuntimeInterfaceAsObject(Guid, Guid) はサポートされなくなっており、PlatformNotSupportedException がスローされます。 警告
SYSLIB0020 JsonSerializerOptions.IgnoreNullValues は互換性のために残されています。 シリアル化のときに null 値を無視するには、DefaultIgnoreConditionJsonIgnoreCondition.WhenWritingNull に設定します。 警告
SYSLIB0021 派生された暗号化の種類は古い形式です。 代わりに、基本データ型で Create メソッドを使用してください。 警告
SYSLIB0022 Rijndael 型と RijndaelManaged 型は古い形式です。 代わりに、Aes を使用してください。 警告
SYSLIB0023 RNGCryptoServiceProvider は互換性のために残されています。 乱数を生成するには、代わりに RandomNumberGenerator 静的メソッドのいずれかを使用します。 警告
SYSLIB0024 AppDomain の作成とアンロードはサポートされておらず、例外がスローされます。 警告
SYSLIB0025 .NET 6 以降では、SuppressIldasmAttribute の効果はありません。 警告
SYSLIB0026 X509CertificateX509Certificate2 は変更できません。 適切なコンストラクターを使用して、新しい証明書を作成してください。 警告
SYSLIB0027 PublicKey.Key は互換性のために残されています。 適切なメソッドを使用して、GetRSAPublicKey() などの公開キーを取得します。 警告
SYSLIB0028 X509Certificate2.PrivateKey は互換性のために残されています。 適切なメソッドを使用して、RSACertificateExtensions.GetRSAPrivateKey(X509Certificate2) などの秘密キーを取得するか、X509Certificate2.CopyWithPrivateKey(ECDiffieHellman) メソッドを使用して秘密キーで新しいインスタンスを作成します。 警告
SYSLIB0029 ProduceLegacyHmacValues は互換性のために残されています。 従来の HMAC 値の生成はサポートされなくなりました。 警告
SYSLIB0030 HMACSHA1 では、プラットフォームによって提供されるアルゴリズムの実装が常に使用されます useManagedSha1 パラメーターを指定しないでコンストラクターを使用します。 警告
SYSLIB0031 CryptoConfig.EncodeOID(String) は互換性のために残されています。 System.Formats.Asn1 で提供されている ASN.1 の機能を使用します。 警告
SYSLIB0032 破損したプロセス状態の例外からの回復はサポートされていません。HandleProcessCorruptedStateExceptionsAttribute は無視されます。 警告
SYSLIB0033 Rfc2898DeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) は互換性のために残されており、サポートされていません。 代わりに、PasswordDeriveBytes.CryptDeriveKey(String, String, Int32, Byte[]) を使用してください。 警告
SYSLIB0034 CmsSigner(CspParameters) は互換性のために残されています。 代わりに、別のコンストラクターを使用します。 警告
SYSLIB0035 SignerInfo.ComputeCounterSignature() は互換性のために残されています。 代わりに、CmsSigner を許可するオーバーロードを使用します。 警告

導入されたバージョン

.NET 6

  • 警告に記載されている URL リンクを使用して、各診断 ID に対して指定されているガイダンスに従います。

  • これらの旧型式に関する警告またはエラーは、古い型またはメンバーに対して標準診断 ID を使用して抑制することはできません。代わりに、カスタム SYSLIBxxxx 診断 ID の値を使用してください。

影響を受ける API

SYSLIB0013

SYSLIB0014

SYSLIB0015

SYSLIB0016

SYSLIB0017

SYSLIB0018

SYSLIB0019

SYSLIB0020

SYSLIB0021

SYSLIB0022

SYSLIB0023

SYSLIB0024

SYSLIB0025

SYSLIB0026

SYSLIB0027

SYSLIB0028

SYSLIB0029

SYSLIB0030

SYSLIB0031

SYSLIB0032

SYSLIB0033

SYSLIB0034

SYSLIB0035

こちらもご覧ください