.NET 5 以降の古い機能
.NET 5 以降、新たに、古いものとしてマークされた一部の API によって、ObsoleteAttribute の 2 つの新しいプロパティが使用されます。
ObsoleteAttribute.DiagnosticId プロパティは、カスタム診断 ID を使用してビルド警告を生成するようにコンパイラに指示します。 カスタム ID を使用すると、旧型式であるという警告を明確に個別に分けて非表示にすることができます。 .NET 5 以降の旧型式の場合、カスタム診断 ID の形式は
SYSLIB0XXX
です。ObsoleteAttribute.UrlFormat プロパティは、旧型式の詳細について確認するために URL リンクを含めるようにコンパイラに指示します。
古い API の使用によってビルドの警告またはエラーが発生した場合は、「リファレンス」セクションに記載されている診断 ID に関する具体的なガイダンスに従ってください。 これらの古い警告またはエラーは、古い型またはメンバーに対して標準診断 ID (CS0618) を使用して非表示にすることは "できません"。代わりに、カスタム SYSLIB0XXX
診断 ID の値を使用してください。 詳細については、「警告を表示しない」を参照してください。
リファレンス
次の表は、.NET 5 以降の SYSLIB0XXX
旧型式のインデックスを示しています。
診断 ID | 警告またはエラー | 説明 |
---|---|---|
SYSLIB0001 | 警告 | UTF-7 エンコードは安全ではないため、使用しないでください。 代わりに UTF-8 を使用することを検討してください。 |
SYSLIB0002 | エラー | PrincipalPermissionAttribute はランタイムによって受け入れられず、使用することはできません。 |
SYSLIB0003 | 警告 | コード アクセス セキュリティ (CAS) はサポートされていないか、ランタイムによって受け入れられていません。 |
SYSLIB0004 | 警告 | 制約された実行領域 (CER) 機能はサポートされていません。 |
SYSLIB0005 | 警告 | グローバル アセンブリ キャッシュ (GAC) はサポートされていません。 |
SYSLIB0006 | 警告 | Thread.Abort() はサポートされていません。PlatformNotSupportedException がスローされます。 |
SYSLIB0007 | 警告 | この暗号化アルゴリズムの既定の実装はサポートされていません。 |
SYSLIB0008 | 警告 | CreatePdbGenerator() API はサポートされていません。PlatformNotSupportedException がスローされます。 |
SYSLIB0009 | 警告 | AuthenticationManager はサポートされません。 メソッドは操作なしか、PlatformNotSupportedException をスローします。 |
SYSLIB0010 | 警告 | 一部のリモート処理 API はサポートされていません。PlatformNotSupportedException がスローされます。 |
SYSLIB0011 | 警告 | BinaryFormatter シリアル化は古いので使用しないでください。 |
SYSLIB0012 | 警告 | Assembly.CodeBase と Assembly.EscapedCodeBase は .NET Framework との互換性のためだけに含まれています。 Assembly.Location を代わりに使用します。 |
SYSLIB0013 | 警告 | Uri.EscapeUriString(String) を使用すると、場合によっては、URI 文字列が壊れる可能性があります。 クエリ文字列コンポーネントには、代わりに Uri.EscapeDataString(String) の使用を検討してください。 |
SYSLIB0014 | 警告 | WebRequest、HttpWebRequest、ServicePoint、WebClient は古くなっています。 HttpClient を代わりに使用します。 |
SYSLIB0015 | 警告 | .NET 6 以降では、DisablePrivateReflectionAttribute の効果はありません。 |
SYSLIB0016 | 警告 | パフォーマンスを向上させて、割り当てを減らすため、引数を受け取る Graphics.GetContextInfo のオーバーロードを使用してください。 |
SYSLIB0017 | 警告 | 厳密な名前の署名がサポートされず、PlatformNotSupportedException がスローされます。 |
SYSLIB0018 | 警告 | リフレクションのみの読み込みがサポートされず、PlatformNotSupportedException がスローされます。 |
SYSLIB0019 | 警告 | System.Runtime.InteropServices.RuntimeEnvironment のメンバー SystemConfigurationFile、GetRuntimeInterfaceAsIntPtr(Guid, Guid)、GetRuntimeInterfaceAsObject(Guid, Guid) はサポートされなくなっており、PlatformNotSupportedException がスローされます。 |
SYSLIB0020 | 警告 | JsonSerializerOptions.IgnoreNullValues は互換性のために残されています。 シリアル化のときに null 値を無視するには、DefaultIgnoreCondition を JsonIgnoreCondition.WhenWritingNull に設定します。 |
SYSLIB0021 | 警告 | 派生された暗号化の種類は古い形式です。 代わりに、基本データ型で Create メソッドを使用してください。 |
SYSLIB0022 | 警告 | Rijndael 型と RijndaelManaged 型は古い形式です。 Aes を代わりに使用します。 |
SYSLIB0023 | 警告 | RNGCryptoServiceProvider は互換性のために残されています。 乱数を生成するには、代わりに RandomNumberGenerator 静的メソッドのいずれかを使用します。 |
SYSLIB0024 | 警告 | AppDomain の作成とアンロードはサポートされておらず、例外がスローされます。 |
SYSLIB0025 | 警告 | .NET 6 以降では、SuppressIldasmAttribute の効果はありません。 |
SYSLIB0026 | 警告 | X509Certificate と X509Certificate2 は変更できません。 適切なコンストラクターを使用して、新しい証明書を作成してください。 |
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 を許可するオーバーロードを使用します。 |
SYSLIB0036 | 警告 | Regex.CompileToAssembly は互換性のために残されており、サポートされていません。 代わりに、正規表現のソースジェネレーターと共に RegexGeneratorAttribute を使用してください。 |
SYSLIB0037 | 警告 | AssemblyName メンバー HashAlgorithm、ProcessorArchitecture、VersionCompatibility は互換性のために残されており、サポートされていません。 |
SYSLIB0038 | 警告 | SerializationFormat.Binary は互換性のために残されていますが、使用しないでください。 |
SYSLIB0039 | 警告 | TLS バージョン 1.0 と 1.1 には既知の脆弱性があり、推奨されていません。 代わりに新しいバージョンの TLS を使用するか、SslProtocols.None を使用して OS の既定値に従います。 |
SYSLIB0040 | 警告 | EncryptionPolicy.NoEncryption と EncryptionPolicy.AllowNoEncryption はセキュリティを大幅に低下させるため、運用環境のコードでは使用しないでください。 |
SYSLIB0041 | 警告 | Rfc2898DeriveBytes コンストラクターの既定のハッシュ アルゴリズムと反復回数は古く、安全ではありません。 ハッシュ アルゴリズムと反復回数を受け入れるコンストラクターを使用します。 |
SYSLIB0042 | 警告 | ToXmlString および FromXmlString には楕円曲線暗号 (ECC) 型の実装はなく、廃止されています。 公開キー用のExportSubjectPublicKeyInfo や ImportSubjectPublicKeyInfo 、秘密キー用の ExportPkcs8PrivateKey や ImportPkcs8PrivateKey などの標準のインポートおよびエクスポート形式を使用します。 |
SYSLIB0043 | 警告 | ECDiffieHellmanPublicKey.ToByteArray() および関連付けられたコンストラクターには、すべてのプラットフォームで一貫した相互運用可能な実装がありません。 ECDiffieHellmanPublicKey.ExportSubjectPublicKeyInfo() を代わりに使用します。 |
SYSLIB0044 | 警告 | AssemblyName.CodeBase と AssemblyName.EscapedCodeBase は非推奨になっています。 アセンブリの読み込みに使用することはサポートされていません。 |
SYSLIB0045 | 警告 | アルゴリズム名を受け入れる暗号化ファクトリ メソッドは廃止されました。 代わりに、アルゴリズムの種類に対してパラメーターなしの Create ファクトリ メソッドを使用します。 |
SYSLIB0046 | 警告 | ControlledExecution.Run(Action, CancellationToken) メソッドはプロセスを破損させる可能性があり、運用コードでは使用しないでください。 |
SYSLIB0047 | 警告 | XmlSecureResolver は互換性のために残されています。 XML 外部エンティティ解決を禁止する場合は、代わりに XmlResolver.ThrowingResolver を使用します。 |
SYSLIB0048 | 警告 | RSA.EncryptValue(Byte[]) と RSA.DecryptValue(Byte[]) は非推奨になっています。 代わりに、RSA.Encrypt および RSA.Decrypt を使用してください。 |
SYSLIB0049 | 警告 | JsonSerializerOptions.AddContext は廃止されています。 JsonSerializerContext を登録するには、TypeInfoResolver または TypeInfoResolverChain プロパティを使用してください。 |
SYSLIB0050 | 警告 | フォーマッタ ベースのシリアル化は古いので使用しないでください。 |
SYSLIB0051 | 警告 | 古いフォーマッタ ベースのシリアル化をサポートする API は古くなっています。 アプリケーション コードで呼び出したり拡張したりすることはできません。 |
SYSLIB0052 | 警告 | Regex 拡張機能の古いメカニズムをサポートする API は廃止されています。 |
SYSLIB0053 | 警告 | AesGcm では、暗号化と暗号化解除に必要なタグ サイズが示されている必要があります。 タグ サイズを受け入れるコンストラクターを使用してください。 |
SYSLIB0054 | 警告 | Thread.VolatileRead と Thread.VolatileWrite は非推奨になっています。 代わりに、Volatile.Read タグまたは Volatile.Write タグを使用してください。 |
SYSLIB0055 | 警告 | 符号付きパラメーターを使用する AdvSimd.ShiftRightLogicalRoundedNarrowingSaturate* メソッドは古い形式です。 代わりに、符号なしのオーバーロードを使用します。 |
SYSLIB0056 | 警告 | カスタム AssemblyHashAlgorithm 付きの Assembly.LoadFrom は廃止されます。 AssemblyHashAlgorithm なしでオーバーロードを使用します。 |
SYSLIB0057 | 警告 | バイナリおよびファイル コンテンツの X509Certificate2 および X509Certificate コンストラクターは廃止されています。 |
警告を表示しない
可能な限り、使用可能な回避策を使用してください。 ただし、コードを変更できない場合、#pragma
ディレクティブか <NoWarn>
プロジェクト設定で警告を非表示にできます。 古い API を使用する必要があり、SYSLIB0XXX
診断がエラーとして表示されない場合は、コードまたはプロジェクト ファイルで警告を非表示にすることができます。
コードで警告を抑制するには:
// Disable the warning.
#pragma warning disable SYSLIB0001
// Code that uses obsolete API.
//...
// Re-enable the warning.
#pragma warning restore SYSLIB0001
プロジェクト ファイルで警告を抑制するには:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<!-- NoWarn below suppresses SYSLIB0001 project-wide -->
<NoWarn>$(NoWarn);SYSLIB0001</NoWarn>
<!-- To suppress multiple warnings, you can use multiple NoWarn elements -->
<NoWarn>$(NoWarn);SYSLIB0002</NoWarn>
<NoWarn>$(NoWarn);SYSLIB0003</NoWarn>
<!-- Alternatively, you can suppress multiple warnings by using a semicolon-delimited list -->
<NoWarn>$(NoWarn);SYSLIB0001;SYSLIB0002;SYSLIB0003</NoWarn>
</PropertyGroup>
</Project>
注意
このように警告を非表示にすると、指定した非推奨警告だけが無効になります。 診断 ID の異なる非推奨警告を含め、その他の警告は無効になりません。
関連項目
.NET