問題
VisualStudioのソリューションエクスプローラーからプロジェクトを右クリック→発行で、以下のエラーが発生する。
エラー 2 SignTool はエラー 'bin\Release\XXXX.publish\\setup.exe の署名に失敗しました。 SignTool Error: ISignedCode::Sign returned error: 0x80880253
The signer's certificate is not valid for signing.
SignTool Error: An error occurred while attempting to sign: bin\Release\XXXX.publish\\setup.exe
' を報告しました。
原因
プログラムのClickOnesなどの発行時に以下のようなエラーが発生する原因は、証明書の期限が切れていること。
https://ameblo.jp/enhaunse/entry-10067285543.html
対策
期限を延長した証明書を作成してそれを利用するように変更する。
パターン1
プロジェクト→プロパティ→署名→ClickOnceマニフェストに署名する→テスト証明書の作成ボタンを押して、 新しいテスト証明書を作成する。 その後、発行を行うことでエラーが出ない。 ただし、この方法で発行すると既にインストール済みのプログラムを更新するときに 問題が発生する可能性がある。 (VisualStudio2008以降だと問題ない?)
パターン2
既存の証明書「XXX.pfx」をもとに期限を延ばした証明書を再作成する。 ClickOnceのデジタル証明書を更新するためのプログラムRenewCert.exeを作成 以下URLをもとに作成する https://ameblo.jp/enhaunse/entry-10067285543.html 上のサイトだと5年後までが期限になるがコードを修正することで何年後にすることでも可能。 RenewCert.exeで期限を延長さいた「XXX.pfx」ファイルを作成 RenewCert.exe OLD.pfx NEW.pfx "CN=xxxxx" "CN=xxxxx"のxxxxxには、 プロジェクト→プロパティ→署名→ClickOnceマニフェストに署名する→発行元 ……の文字列を指定する。 作成した証明書をプロジェクト以下のフォルダにコピー プロジェクト→プロパティ→署名→ClickOnceマニフェストに署名する→ファイルから選択ボタンを押して、 作成した証明書を指定する。 その後、発行を行うことでエラーが出ない。