2012-04-30 16 views
1

Stack Overflowの質問Visual Studio reporting error "PFX - Error Importing Key/Object already exists"を含むいくつかの箇所で説明したのと同じ問題が発生しています。Visual Studio 2008を使用してアセンブリに署名するときに 'Object already exists'が発生する

ほとんどの人がWindows   VistaとWindows   7で問題を抱えていますが、私の場合はWindows   XPで管理者として実行しています。私は見つけたすべての解決策を試してきましたが、これまでに何の仕事もしていませんでした。私が見つけた情報の大部分は数年前のものです:より良い/最新の情報がありますか、もっと頻繁に動作する修正がありますか?

私のコード署名証明書はGo Daddyで、SignTool.exeユーティリティで正常に動作します。私はSignTool.exeを使ってVisual Studioの外で構築された多くのEXEファイルに署名し、それらはすべて正しく検証されます。

私の現在のプロジェクトでこの方法でSignTool.exeを使用してEXEファイルに署名しようとしましたが、このプロジェクトに使用しようとしているClickOnce公開に関するいくつかの追加問題があります。ハッシュはありません一致し、そしてClickOnceはEXEファイルが署名されていても「発行元不明」として報告しています。

答えて

2

私はまだ動作するようにIDEオプションを取得することはできませんが、これは私のために働いた、あまりにも悪いことではありません。

  1. はIDEで、「ClickOnceのマニフェストに署名」を選択し、「ストアから有効"(PFXファイルから選択すると、同じ"オブジェクトが既に存在する "エラーが発生します)。

  2. は、「アセンブリに署名し、」チェックしないでください。

  3. の実行には、ポストビルドイベントを追加します。

    c:\signtool.exe sign /f c:\cert.pfx /p password /t http://tsa.starfieldtech.com c:\project\obj\debug\myapp.exe 
    

だから、基本的に署名するときSignTool.exeを使用して、私はIDEを聞かせている(トリックましたが、また、マニフェストに署名する必要がありますdo)、そして他の分かりにくい部分は、BINフォルダではなく、OBJフォルダからEXEファイルに署名する必要があるということでした。

IDEと私はあなたがあなたのパスワードたびに入力する必要があると思うので、私は、私が推測するIDEよりも、この方が好き。この方法では、パスワードはポストビルドイベントのコマンドラインにあります。

+0

「アセンブリに署名する」オプションをすでに使用している場合、エラーは解決されません。プロジェクトファイルを外部エディタ(Notepad ++ ie)で編集し、.pfxエントリを削除する必要があります。それは魅力のように動作します。/tオプションを使用しない場合でも – Miquel

関連する問題