トップ回答者
ClickOnceで作成したアプリケーションの実行時EXEのデジタル署名について

質問
-
ClickOnceで作成したアプリケーションの実行時EXEのデジタル署名について
お聞きしたいのですが、
現在Windows10、ViualStudio C#2010 Expressで
デジタル署名のテストをしております。
ClickOnceで作成したアプリケーションの実行時EXE(タスクマネージャーなどから確認時)にデジタル署名を
付ける方法を知っていらっしゃる方がいましたら、教えて頂けないでしょうか?
インターネットで調べた範囲では、ClickOnceで発行した、SetUp.exeにはデジタル署名が付くのですが、
ExcelのExeの様に実行時のEXEのは付与されないようです。VB、VisualStudioの別のバージョンでもこの発行オプションで出来た
などでも情報ありましたら、教えて頂けないでしょうか?
発行時に指定したオプションになります。
一応、アセンブリにも署名を付けました。
回答
-
発行の際に参照されるEXEは \bin\Release 以下の EXE ではなく、\obj\Release (デバッグ時は\obj\Debug) 以下の EXE のようです。
署名のついた EXE を obj フォルダの同名の EXE に上書きしてプロジェクトのプロパティ→「発行」→「今すぐ発行」を行うと、発行時にも本体の EXE に署名をつけることができました。「ビルド後に実行するコマンドライン」で obj フォルダの方の本体 EXE にも署名をつけるようにしてもよいかもしれません。
参考 : https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/781ce213-1ade-43c1-8de2-c3ad1693e573
- 編集済み kenjinoteMVP 2016年12月19日 6:56
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2016年12月19日 8:42
すべての返信
-
Visual Studio 2010、2012、2013、2015で試したところ、2010と2012ではアプリケーション本体EXEのほうには署名は付きませんでしたが、2013、2015では署名が付きました。試した手順は下記です。
- C#フォームアプリケーションのプロジェクトを新規作成
- プロジェクトのプロパティを開く
- 「署名」タブを開く
- 「ClickOnce マニフェストに署名する」にチェックを入れる
- メニューの「ビルド」→「○○○の発行」を選択
- 完了ボタンをクリック
Visual Studio 2013,2015ではプロジェクトフォルダの「bin\Debug\app.publish」または「bin\Release\app.publish」の中に署名済みのEXEができます。
- 編集済み kenjinoteMVP 2016年12月19日 2:14
-
すみません。未検証なのですが、プロジェクトのプロパティ画面に「ビルド イベント」タブがあります。
その中の「ビルド後に実行するコマンドライン」で本体のEXEに署名するコマンドを記述してみてはどうでしょうか?もしかすると Visual Studio 2010 でも署名を付けられるかもしれません。- 編集済み kenjinoteMVP 2016年12月19日 2:48
-
発行の際に参照されるEXEは \bin\Release 以下の EXE ではなく、\obj\Release (デバッグ時は\obj\Debug) 以下の EXE のようです。
署名のついた EXE を obj フォルダの同名の EXE に上書きしてプロジェクトのプロパティ→「発行」→「今すぐ発行」を行うと、発行時にも本体の EXE に署名をつけることができました。「ビルド後に実行するコマンドライン」で obj フォルダの方の本体 EXE にも署名をつけるようにしてもよいかもしれません。
参考 : https://social.msdn.microsoft.com/Forums/vstudio/ja-JP/781ce213-1ade-43c1-8de2-c3ad1693e573
- 編集済み kenjinoteMVP 2016年12月19日 6:56
- 回答としてマーク 栗下 望Microsoft employee, Moderator 2016年12月19日 8:42