VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法C#
スポンサーリンク

Visual Studio2017でプロジェクトを発行しようとして「既定の証明書を作成できませんでした。発行を中止します。」と出た時の対処法。

スポンサーリンク

一般的な対処方法

まずプロジェクトをVisual Studioで開き、実行確認しておきます。(当然ですが、実行できないと発行も出来ません)
一度でもプロジェクトが実行されると拡張子が~.pfxという証明書ファイルが作成されているはずです。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

プロジェクト > ~のプロパティ を開きます。(~の部分はプロジェクト名により変わります)
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

セキュリティタブの中にあるClickOnceセキュリティ設定を有効にするにチェックを入れ、これは完全に信頼できるアプリケーションですの項目を選択します。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

署名タブをクリックします。
ClickOnceマニフェストに署名するにチェックを入れ、ファイルから選択ボタンをクリックします。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

ファイルの選択ウインドウが開きます。
実行時に生成された証明書ファイル(~.pfxファイル)を選択して開くボタンをクリックします。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

署名タブの証明書欄に選択したファイルの情報が読み込まれているはずです。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

以上で設定は完了です。

もう一度発行してみます。

publishフォルダに以下のようなファイルが作成されれば、発行成功です。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

~.applicationまたはsetup.exeをダブルクリックするとインストール出来ます。

一般的な方法でうまく行かない場合の対処方法

と、ここまでは普通の対処だと思いますが、わたしのように証明書ファイルを自分で消してしまったり、プロジェクトのプロパティを適当に変更してめちゃくちゃになっている場合もあると思います。(笑)

わたしは以下のプロジェクトの設定フアイル(~.csproj)を編集する方法でなんとか発行ができました。
ただ、かなりいい加減な方法なので、あくまで自己責任でお願いします。

まずプロジェクトフォルダにあるプロジェクトの設定フアイル(~.csproj)別名でコピーします。
コピーしたファイルはバックアップ用として取っておきます。(~.csprojのファイルを編集すると最悪プロジェクトが起動しなくなるため)

同じフォルダにある証明書ファイル(~.pfx)を全て消去します。

こんな感じのファイル。
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

次にUTF-8の文字コード編集可能なエディタで~.csprojファイルを開きます

このファイルに記述されたいくつかの部分を消去して保存するのですが、以下のわたしの編集したファイルと同じような部分があるとは限らないのであくまでイメージです。
ちなみにこのファイルは、HTMLのようなタグ形式で記述されているので、ある部分を消す場合は、タグブロックごと消去します。

基本的には~.pfxと記述がある部分はすべて消去しました。

例)
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

例)
VS2017:「既定の証明書を作成できませんでした。発行を中止します。」が出た時の対処法

その他、余計な設定した部分が残っていると思う部分があれば、消してみてください。(適当ですいません。うまくいけばラッキーくらいの感じでお願いします)

わたしの場合は、上記のような記述が何箇所かあったので全て消去しました。
編集がおわったら~.csprojファイルを上書きして再度プロジェクトを起動します。

ここで開かない場合は、間違った消去をしてしまった可能性があるので、コピーしておいた~.csprojファイルから復活させてください。

うまく起動できた場合は、この記事の一番上の一般的な対処方法に戻って試してみてください。

以上、Visual Studio2017でプロジェクトを発行しようとして「既定の証明書を作成できませんでした。発行を中止します。」と出た時の対処法でした。

コメント