私はこの質問をstackoverflowで徹底的に調査し、多くの答えを見てきましたが、どれもまだ私たちのために働いていません。先日、C#WPF .net4アプリケーションの署名に使用するコード署名証明書をcomodoから購入しました。
次のURL の指示に従いました。
そして、「プロジェクトプロパティ->歌唱->アセンブリに署名」でVisual Studioに証明書をインポートしました。次に、プロジェクトをビルドしようとすると、次のエラーが表示されます。
次のキーファイルをインポートできません:comodo.pfx。キーファイルはパスワードで保護されている場合があります。これを修正するには、VS_KEY_xxxxxxxxxxxxxxxというキーコンテナ名を使用して、証明書を手動で厳密な名前のCSPに手動でインストールしてください。
インターネット上で多くの解決策を見つけ、次のことを試しました。
.csprojファイルのセクションに追加:
ダウンロード http://visualstudiogallery.msdn.Microsoft.com/a83505c6-77b3-44a6-b53b-73d77cba84c8 をクリックし、エラーで「修正を適用」をクリックしました
これまでのところ成功していません。パスワードを使用してキーを正常にインポートできるため、パスワードが正しいことがわかります。また、clickonceパブリッシュでマニフェストに署名するためにこれがうまく機能することもわかっています。他の問題が発生していないことを確認するために、シルコンス署名をオフにし、アセンブリに署名しようとしています。
単に「Project > Property > Signing "をクリックし、[ClickOnceマニフェストに署名する]チェックボックスをオフにします。
Visual Studioは下位の証明書をあまりうまく処理していないようだということを学びました。
複数のマシン(異なるOS/VSの組み合わせ)でいくつかの証明書を試したところ、同じ結果が得られました。
最終的に回避策としてこれを見つけました。
アセンブリに署名する
signtool sign /f "[path to pfx]" /p [password] /v "[path to Assembly]"
MageUIを使用してインストーラーをビルドします(「 ClickOnceアプリケーションの手動デプロイ 」を参照)
Visual Studioの問題は、証明書チェーンが気に入らないということです。これは、チェーンなしで証明書をインポート/エクスポートすることで解決できます。次の問題は certutilを使用してAT_SIGNATUREでエクスポートする で解決されます。 VSにインポートしてビルドできましたが、アセンブリに署名していないようです。
同様のエラーが発生しました。 WindowsエクスプローラーのコンテキストメニューからInstall PFXを選択して解決しました。
私が考えることができる最善の解決策は、プロジェクトに移動する->プロパティ->厳密な名前のキーファイルのドロップダウンを選択し、「新規」を選択する->キーを作成してから、上部の証明書セクションに移動する->ファイルから選択をクリックする作成した新しいキー->ビルドソリューション->公開を選択します。
別の「私のために働いた」...
WindowsエクスプローラーでPFXを右クリックし、[PFXのインストール]を選択し、ウィザードでパスワードを入力しました。次に、VSのプロジェクトプロパティの[署名]で[パスワードの変更]を選択し、パスワードを再入力します。これ以前は、VSを管理者として実行するだけで機能していました。
同じ問題がありました。私は、多数のコンピューターのサムドライブからアプリケーションを構築していますが、これが原因だと考えています。
「sn -i [comodo] .pfx VS_KEY_xxxxxxxxxxxxx」メソッドで成功しました。次の手順を実行しました。
管理者として「Developer Command Prompt」を実行せずにこれを試したところ、「sn -i mykey.pfx VS_KEY_xxxxxxxxxxxxx」を実行するとヘルプが表示され、機能しません。秘Theは、管理者として開発プロンプトを実行したことを確認することでした。
コンテキストでは、VS Community 2013.5、Window 7 x64 Professional、およびNET Framework 4.7を使用しています
私のために働いて、最初に証明書をダブルクリックしてインストールします。その後、
プロジェクトのプロパティ->署名->「ClickOnceマニフェストに署名」がチェックされている場合->「ファイルから選択」をクリックして.pfxファイルを選択すると、発行先、発行元、目的などの証明書の有効な詳細がすべて表示されます.