この記事では、MSB3321エラー コードについて説明します。
メッセージ テキスト
MSB3321: Importing key file 'value' was canceled.
説明
このエラーは、MSBuild が Authenticode 証明書を使用して ClickOnce アセンブリ マニフェストに署名しようとしても、指定されたキー ファイルから秘密キーをインポートできない場合に発生します。
ClickOnce 配置プロセス中、または MSBuild で Publish
ターゲットを実行する場合、アセンブリは厳密な名前の Authenticode 証明書 (開発時に通常使用する一時的な "devtest" 証明書、または証明機関 (CA) によって発行された信頼された証明書) で署名されます。 このシナリオについては、「 コマンド ラインから ClickOnce アプリケーションをビルドする」で説明されています。
.pfx
ファイルで秘密キーを持つ証明書を使用するには、証明書が信頼されるようにパスワードで検証する必要があります。その後、MSBuild で使用できます。 Visual Studio でマニフェストをビルドして署名する場合は、キーのファイル名を指定するときに、Visual Studio でパスワードを指定します。 ただし、Visual Studio をインストールまたは使用せずにビルド サーバーなどの別のコンピューターで同じプロジェクトをビルドする場合は、ビルド サーバーの信頼できる証明書のストアにキーを追加し、パスワードで検証する必要があります。 その後、MSBuild で ClickOnce アセンブリに署名できるようになります。
解決策
ビルド サーバーのセットアップ時など、Visual Studio がインストールされていないコンピューターでビルドする場合は、Authenticode 証明書と秘密キーを Windows 信頼された発行元証明書ストアに追加します。 certmgr を使用して、システム ストアに証明書を追加できます。 追加すると、証明書の有効期限が切れるか削除されるまでアセンブリに署名しようとしたときに、MSBuild で使用できるようになります。
.NET プロジェクトの dotnet-mage.exe 、または .NET Framework プロジェクトの mage.exe (マニフェスト アセンブリ生成) を使用して、ClickOnce マニフェストを生成して署名することもできます。 ClickOnce アプリケーションの手動配置を参照してください。
対象
MSBuild のすべてのバージョン