厳密名アセンブリ (アセンブリ署名)
更新 : 2007 年 11 月
このトピックでは、アセンブリに署名する方法について説明します。アセンブリに署名することを、多くの場合、アセンブリに厳密名を付けるともいいます。
解説
Visual C++ を使用するときは、リンカ オプションを使用してアセンブリに署名することにより、アセンブリ署名の CLR 属性に関する問題を回避します。
属性を使用しない理由として、アセンブリ メタデータではキー名が参照可能であり、ファイル名に機密情報が含まれている場合にはセキュリティ上のリスクが発生することがあります。また、Visual C++ 開発環境で使用されるビルド プロセスでは、CLR 属性を使用してアセンブリに厳密名を付け、その後 mt.exe などの後処理ツールをアセンブリで実行した場合、アセンブリに署名したキーが無効化されます。
コマンド ラインで作成し、リンカ オプションを使用してアセンブリに署名し、次に後処理ツール (mt.exe など) を実行する場合、sn.exe でアセンブリに再度署名する必要があります。代わりに、作成後のアセンブリの署名を後回しにし、後処理ツールを実行してから署名できます。
開発環境を構築するときに署名の属性を使用する場合は、ビルド後のイベントで sn.exe (厳密名ツール (Sn.exe)) を明示的に呼び出すと、正しくアセンブリに署名できます。詳細については、「ビルド イベントの指定」を参照してください。属性およびビルド後のイベントを使用すると、リンカ オプションを使用する場合と比較して、ビルドにかかる時間が短くなります。
次のリンカ オプションはアセンブリの署名をサポートしています。
厳密なアセンブリの詳細については、「厳密な名前付きアセンブリの作成と使用」を参照してください。