厳密な名前でのアセンブリへの署名

厳密な名前でのアセンブリへの署名には、2 つの方法があります。

厳密な名前でアセンブリに署名するには、暗号キー ペアが必要です。キー ペアの作成の詳細については、「キー ペアの作成」を参照してください。

アセンブリ リンカを使用してアセンブリを作成し、厳密な名前でそのアセンブリに署名するには、次のようにします。

  • コマンド プロンプトに次のコマンドを入力します。

    al /out:<assembly name> <module name> /keyfile:<file name>

    このコマンドの assembly name は厳密な名前で署名するアセンブリの名前、module name はアセンブリの作成に使用するコード モジュールの名前です。file name はキー ペアを格納するコンテナまたはファイルの名前です。

キー ファイル sgKey.snk を使用して厳密な名前でアセンブリ MyAssembly.dll に署名する例を、次に示します。

al /out:MyAssembly.dll MyModule.netmodule /keyfile:sgKey.snk

属性を使用して厳密な名前でアセンブリに署名するには、次のようにします。

  • コード モジュール内で、厳密な名前でアセンブリに署名するときに使用するキー ペアを格納するファイルまたはコンテナの名前を指定して、AssemblyKeyFileAttribute または AssemblyKeyNameAttribute を追加します。

キー ファイル sgKey.snk を指定して AssemblyKeyFileAttribute を使用する例を次に示します。

<Assembly:AssemblyKeyFileAttribute("sgKey.snk")>
[C#]
[assembly:AssemblyKeyFileAttribute(@"..\..\sgKey.snk")]

コンパイル時にアセンブリに遅延署名することもできます。詳細については、「アセンブリへの遅延署名」を参照してください。

厳密な名前でアセンブリに署名すると、アセンブリ リンカ (Al.exe) は、現在のディレクトリと出力ディレクトリを基準にしてキー ファイルを検索します。コマンド ライン コンパイラを使用する場合は、コード モジュールを格納する現在のディレクトリにキーをコピーするだけで十分です。

参照

厳密な名前付きアセンブリの作成と使用 | キー ペアの作成 | アセンブリへの遅延署名