web-dev-qa-db-ja.com

MSBuild、Team Build、およびTFSでPFXファイルを使用してアセンブリに署名する

[〜#〜] tfs [〜#〜] 2010で Team BuildMSBuild )を使用してプロジェクトをビルドしようとすると、このエラーが発生します:


C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1970):
次のキーファイルをインポートできません:CCC.pfx。
キーファイルはパスワードで保護されている可能性があります。

これを修正するには、証明書を再度インポートするか、次のキーコンテナ名を使用して証明書を厳密な名前のCSPに手動でインストールしてください:VS_KEY_C00C673BBB353901

C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1970):
キーファイル「CCC.pfx」のインポートがキャンセルされました。


Visual Studio 2010ではすべて正常にビルドされます。アセンブリは [〜#〜] pfx [〜#〜] ファイルで署名されています。通常、Visual Studioでは、最初にビルドするときにパスワードの入力を求められますが、その後は二度と入力されません...

私は実行してみました:

sn -i companyname.pfx VS_KEY_3E185446540E7F7A 

stack Overflowの質問で提案されている他の応答としてキーファイルをインポートできません 'blah.pfx'-エラー'キーファイルはパスワードで保護されている可能性があります '。 Stack Overflowの質問で提案されているように個人証明書ストアにインポートしようとしましたMSBuildを使用してClickOnceまたはAssemblyに署名するとエラーMSB3321が発生します。しかし、まったく役に立たず、それでも同じエラーです。

どうすればいいのですか?ビルドサービスが実行されているWindowsアカウントなどに証明書を追加する必要がありますか?

または、署名を使用せずにチームビルドでビルドを実行するにはどうすればよいですか?コンパイルを確認して単体テストを実行したいだけです。そのために署名する必要はありません。

20
MikeG

最終的に私にとってそれを修正したのは、TFSビルドサービスがローカルマシンで管理者を実行するアカウントを作成することでした。

私が以前に試していた他のことも、それを機能させるために行う必要があるかどうかはわかりません。しかし、管理者になる前は、管理者になった後は機能しませんでした。

5
MikeG

あなたは この答え をあなたの特定のものに適応させる必要があります。何かのようなもの:

sn -i companyname.pfx VS_KEY_C00C673BBB353901
9
heavyd

私がしたことはそれほど洗練されていませんが、機能します。ビルドマシンでmsbuildを実行するユーザーとしてログインし、手動でmsbuildを呼び出し、プロンプトが表示されたらパスワードを入力します。これで、そのユーザーの証明書ストアに保存され、ビルドを無人で実行できるようになります。

8
gregmac

同じエラーが発生し、「管理者」のコメントを読んだ後、管理者としてVSコマンドプロンプトを実行したところ、正常に機能するようになりました。

1
Zar Shardan

私は同様の問題に直面しました

シナリオ1:ローカルシステムでプロジェクトを構築している間

私の場合、TFSからプロジェクトをダウンロードしてビルドすると、マニフェスト署名エラーが発生していました。

この問題を回避するために、プロジェクト==>プロパティ==>署名してから[ClickOnceマニフェストに署名する]のチェックを外しましたを右クリックしました。

OR

ストアから選択ボタンをクリックし、開いたダイアログボックスからログインIDを選択できます。

OR

PFXファイルを手動でインストールし、後で[その他のオプション]ボタンをクリックしてそれらの証明書をインストールできます。

シナリオ2:-ビルド中のマニフェストエラー

このエラーを解決するには、最初にストアから選択ボタンをクリックし、ダイアログボックスからログインIDを選択します。次に、最初にそのプロジェクトをTFSでコミットしてから、ビルドを実行します。

0
Sunny

私は次の設定をしました:

<PropertyGroup>
  <SignAssembly>false</SignAssembly>
  <AssemblyOriginatorKeyFile>MyKey.pfx</AssemblyOriginatorKeyFile>
</PropertyGroup>

アセンブリの署名はオフになりましたが、AssemblyOriginatorKeyFileによりマニフェストの署名中にエラーが発生しました。 AssemblyOriginatorKeyFileを削除して修正しました。

0
Der_Meister