はじめに#
visual studio2019でプログラムを発行しようとしたら
署名中にエラーが発生しました: signtool error: invalid option: /fd
というエラ―が出てしまい、解決するのに苦労したので記事にしようと思います。
試したが解決できなかった方法#
まず、署名中のエラーでは
プロジェクトの署名の期限切れ
もあるようですが、期限は問題なかったです。
次に、
SignTool.exeが見つかりませんでした
と表示される場合の対処法である
「ClickOnce Publishing」 の追加インストールを試してみました。
「SignTool.exeが見つかりませんでした」とは表示されていませんでしたが、
Visual Studio Installerを起動して「個別のコンポーネント」を確認したところ
**「ClickOnce Publishing」**がインストールされていなかったのでインストールしました。
しかし、インストール後も発行しようとすると同様のエラーが出て発行できませんでした。
ここまでの参考記事
VSエラー:署名中にエラーが発生しましたの対処方法
https://dianxnao.com/vs%E3%82%A8%E3%83%A9%E3%83%BC%EF%BC%9A%E7%BD%B2%E5%90%8D%E4%B8%AD%E3%81%AB%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%8C%E7%99%BA%E7%94%9F%E3%81%97%E3%81%BE%E3%81%97%E
解決できた方法#
その後調べていくとこんな記事を見つけました。
clickonce visual studio
https://ameblo.jp/08128888/entry-12580129210.html
・visual studio2008がインストールされている
・visual studio2017,2019がインストールされている
上記の条件にあてはまる場合に起こる症状のようです。
上の記事に英語のQAのリンクが貼られており
https://social.msdn.microsoft.com/Forums/en-US/a39b9f82-aaec-4bbd-8cb2-3cade50796ba/an-error-occurred-while-signing-failed-to-sign-bindebugapppublishprogramexe-signtool-error
google翻訳で読んでみたところ
VisualStudio2008のSigntoolを参照してしまう
のが原因のようです。
解決策の1つとして
・Visual Studio 2008とそのすべてのコンポーネントを削除する
という方法もあるようですが、こちらではなく
・-C:\ Program Files \ Microsoft SDKs \ Windows \ v6.0A \ Bin \ signtool.exeの名前を
別の名前(たとえばsigntool.not_exe)に変更する
ただし、
Visual Studio2008への署名はおそらく壊れます
とのことなので、Visual Studio2008を今後も使用する場合に
signtool.exe の名前をもとに戻せば再び署名、発行できるとは限らないので注意してください。