次の方法で共有


CA2210: アセンブリには有効な厳密な名前が必要です

TypeName

AssembliesShouldHaveValidStrongNames

CheckId

CA2210

[カテゴリ]

Microsoft.Design

互換性に影響する変更点

なし

原因

アセンブリが厳密な名前で署名されていないか、厳密な名前を検証できません。またはコンピューターの現在のレジストリ設定が不適切であるため厳密な名前が有効ではありません。

規則の説明

この規則は、アセンブリの厳密な名前を取得して検証します。次のいずれかの条件が当てはまる場合、違反が発生します。

  • アセンブリに厳密な名前がありません。

  • 署名後にアセンブリが変更されました。

  • アセンブリは遅延署名されています。

  • アセンブリの署名が不適切であるか、署名に失敗しました。

  • アセンブリには、検証に適合するレジストリ設定が必要です。たとえば、アセンブリの検証を省略するときに厳密名ツール (Sn.exe) が使用されました。

厳密な名前によって、改ざんされたアセンブリを、クライアントが無意識のうちに読み込む問題を防ぐことができます。厳密な名前のないアセンブリが配置される状況は、限定されます。適切に署名されていないアセンブリを共有または配布すると、アセンブリが改ざんされる場合、共通言語ランタイムでアセンブリを読み込むことができない場合、またはユーザーのコンピューターで検証を無効にする必要がある場合などの問題が考えられます。厳密な名前のないアセンブリには、次の欠点があります。

  • 出所を検証できません。

  • アセンブリの内容が変更されたかどうかについて、共通言語ランタイムでユーザーに警告できません。

  • グローバル アセンブリ キャッシュに読み込むことができません。

遅延署名されたアセンブリを読み込んで解析する場合、アセンブリの検証を無効にする必要があることに注意してください。

違反の修正方法

キー ファイルを作成するには

次のいずれかの手順を実行します。

Visual Studio を使用してアセンブリに厳密な名前で署名するには

  1. Visual Studio で、ソリューションを開きます。

  2. ソリューション エクスプローラーで、プロジェクトを右クリックし、[プロパティ] をクリックします。

  3. [署名] タブをクリックし、[アセンブリの署名] チェック ボックスをオンにします。

  4. [厳密な名前のキー ファイルを選択してください][新規] を選択します。

    [厳密な名前キーの作成] ウィンドウが表示されます。

  5. [キー ファイル] ボックスに厳密な名前キーの名前を入力します。

  6. このキーをパスワードで保護するかどうかを選択し、[OK] をクリックします。

  7. ソリューション エクスプローラーで、プロジェクトを右クリックし、[ビルド] をクリックします。

Visual Studio 以外のアプリケーションを使用してアセンブリに厳密な名前で署名するには

  • .NET Framework SDK に付属する厳密名ツール (Sn.exe) を使用します。詳細については、「Sn.exe (厳密名ツール)」を参照してください。

警告を抑制する状況

アセンブリの改ざんが問題にならない環境でアセンブリを使用する場合のみ、この規則による警告を抑制します。

参照

処理手順

方法 : 厳密な名前でアセンブリに署名する

関連項目

Sn.exe (厳密名ツール)

System.Reflection.AssemblyKeyFileAttribute

System.Reflection.AssemblyKeyNameAttribute