ファイル '<ファイル>' は署名されていませんでした
更新 : 2007 年 11 月
エラー メッセージ
ファイル '<ファイル>' は署名されていませんでした配置プロジェクトには、推奨されていない署名プロパティが含まれています。詳細については、ヘルプを参照してください。
Visual Studio 2003 以前で使用できた署名機能は、セットアップおよび配置プロジェクト (セットアップ プロジェクト、Web セットアップ プロジェクト、CAB プロジェクト、マージ モジュール) から削除されました。署名を有効にした Visual Studio 2003 プロジェクトを Visual Studio 2005 にインポートする場合、または配置プロジェクトで署名を有効にする場合は、ビルド後のイベントで、Signtool.exe (Windows プラットフォーム SDK 内のアセンブリ署名ツール) を使用してビルド出力のファイルに署名する必要があります。詳細については、「署名ツール (SignTool.exe)」を参照してください。
単純な例では、圧縮しないファイルがなく、ブートストラップ アプリケーション (setup.exe) と、ビルドによって出力されたパッケージ ファイル (Windows インストーラ パッケージ、.cab ファイル、またはマージ モジュール) の両方または一方だけがあります。今回の例では、ビルド後のイベントのダイアログ ボックスで Signtool.exe を呼び出します。
高度なシナリオでは、配置を構成するファイルを圧縮しないことがあります。この場合は、ブートストラップ アプリケーションや Windows インストーラ パッケージよりも、ビルド出力のファイル数の方が多くなります。通常は、これらの圧縮しないファイルに署名し、それぞれの署名付きコンポーネントのハッシュ コードを使用して Windows インストーラ パッケージを更新します。この処理を行うには、ビルド後のイベントで以下を行うスクリプトを実行します。
ビルド出力パスの一連の圧縮しないファイルと CAB ファイルを反復処理し、Signtool.exe を使用して署名します。
Windows インストーラ パッケージ内で、署名した各ファイルのハッシュ コードを更新します。
Signtool.exe を使用してブートストラップ アプリケーションに署名し、Windows インストーラ パッケージに署名します。
単純な例でこのエラーを修正するには
ビルド後のイベントのダイアログ ボックスで Signtool.exe を呼び出します。
<SDK Install dir>Signtool sign –f "filename.pfx" –p "password" $(BuiltOuputPath)\Setup2.msi
<SDK Install dir>Signtool sign –f "filename.pfx" –p "password" $(BuiltOuputPath)\setup.exe
証明書が .pvk ファイルおよび .spc ファイルに保存されている場合は、Windows プラットフォーム SDK の pvk2pfx.exe というツールを使用して、これらのファイル形式を .pfx に変換します。