既定以外の診断 ID を持つ API の旧型式化

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

変更内容

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

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

診断 ID 説明 重大度
SYSLIB0001 UTF-7 エンコードは安全ではないため、使用しないでください。 代わりに UTF-8 を使用することを検討してください。 警告
SYSLIB0002 PrincipalPermissionAttribute はランタイムによって受け入れられず、使用することはできません。 Error
SYSLIB0003 コード アクセス セキュリティ (CAS) はサポートされていないか、ランタイムによって受け入れられていません。 警告
SYSLIB0004 制約された実行領域 (CER) 機能はサポートされていません。 警告
SYSLIB0005 グローバル アセンブリ キャッシュ (GAC) はサポートされていません。 警告
SYSLIB0006 Thread.Abort() はサポートされていません。PlatformNotSupportedException がスローされます。 警告
SYSLIB0007 この暗号化アルゴリズムの既定の実装はサポートされていません。 警告
SYSLIB0008 CreatePdbGenerator() API はサポートされていません。PlatformNotSupportedException がスローされます。 警告
SYSLIB0009 AuthenticationManager.Authenticate および AuthenticationManager.PreAuthenticate メソッドはサポートされていません。PlatformNotSupportedException がスローされます。 警告
SYSLIB0010 一部のリモート処理 API はサポートされていません。PlatformNotSupportedException がスローされます。 警告
SYSLIB0011 BinaryFormatter シリアル化は古いので使用しないでください。 警告
SYSLIB0012 Assembly.CodeBaseAssembly.EscapedCodeBase は .NET Framework との互換性のためだけに含まれています。 代わりに、Assembly.Location を使用してください。 警告

導入されたバージョン

.NET 5.0

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

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

影響を受ける API

SYSLIB0001

SYSLIB0002

SYSLIB0003

System.Security.Permissions 名前空間のクラス:

CodeAccessSecurityAttribute から派生するクラス:

インターフェイス:

IStackWalk を実装するクラス:

IPermission を実装するクラス:

CodeAccessPermission から派生するクラス:

ResourcePermissionBase から派生するクラス:

System.Security.Permissions 名前空間の列挙型:

コード アクセス セキュリティの種類に依存するクラスとメンバー:

SYSLIB0004

SYSLIB0005

SYSLIB0006

SYSLIB0007

SYSLIB0008

SYSLIB0009

SYSLIB0010

SYSLIB0011

SYSLIB0012

こちらもご覧ください