ClickOnceのsetup.exeで’-2146697208’のエラーがでる場合の対応

Tips
スポンサーリンク

今回の記事では、ClickOnceで作成したsetup.exeを実行すると以下のエラーログが書かれてインストール処理に失敗する場合の原因と対応方法を紹介します。

URLDownloadToCacheFile failed with HRESULT ‘-2146697208’

 
 

エラー発生時の現象

ClickOnceで作成したsetup.exeを実行すると、一部の端末のみ、実行直後に以下のエラー画面が表示されました。

〇〇(アプリ名) をインストールしようとしてエラーが発生しました。

ClickOnceのエラーメッセージ

この画面だけでは原因がわからないため、当画面下部の「詳細」を押下すると、以下の内容が表示されます。

ClickOnceエラーメッセージの詳細

何らかのダウロードに失敗したことはわかりますが、まだ原因が分かりません。
そこで、このメッセージに表示されている「install.log」を開いてみます。

ClickOnceのエラーログ

ログファイルでは、setup.exe実行時の詳細な処理が記録されています。
OSの情報を読み込んだり、.NET Frameworkの導入状態をチェックしているようです。

まず着目すべきなのは、最終行のログ内容です。
ここに記述されているURLは、setup.exe実行時にポップアップで表示されたエラー画面の詳細に記載されていたURLと同じです。

ClickOnceエラーログの注目点

試しに、ブラウザでそのURLにアクセスしてみます。

ClickOnceのパラメーターxml

問題無くアクセスできます。
インストール処理で使用するパラメーターなどをxml形式のデータで取得してきているようです。
ただ、setup.exeからこのxmlをダウンロードする場合は、何らかの原因で失敗するようです。

次に着目するのは、最終行の一つ前のログです。

ClickOnceエラーログのエラーメッセージ

以下のログが残っています。

URLDownloadToCacheFile failed with HRESULT ‘-2146697208’

因みに、「HRESULT」はエラーコードを返す戻り値の型であり、-2146697208と10進数で出力されていますが、この数値を16進数に変換してあげることで、Windowsでよく見るエラーコードになります。

取り敢えずこの一文では、URL先のデータをダウンロードし、CasheFileに書こうとして失敗したように読めます。

 
 

「URLDownloadToCacheFile failed with HRESULT ‘-2146697208’」エラーの原因

このエラーが発生していた原因は「インターネットオプション」に存在しました。

「インターネットオプション」の「詳細設定」タブ内の「暗号化されたページをディスクに保存しない」にチェックが入っている。

インターネットオプションの「暗号化されたページをディスクに保存しない」

尚、この設定は、既定値では無効(チェックが外れている)になっています。

この「暗号化されたページをディスクに保存しない」のチェックを外し、ブラウザをいったんすべて閉じたうえで、再度setup.exeを実行したら、正常にインストール処理が進むようになりました。

setup.exeがインストール処理で使用するパラメーターをxmlで取得してキャッシュファイルに書こうとするが、この設定でブロックされてしまいエラーになっていたということだと思われます。

なかの人
なかの人

原因がわかれば、setup.exeの実行時にエラーが発生することも納得ですね!

 
 

最後に

今回はClickOnceのsetup.exeを実行した際に発生したエラーの現象とその対応方法を紹介しました。

インターネットオプションの当設定項目とClickOnceの処理が直接影響するとは思っておらず、原因が面白かったので記事にしてみました。

どなたかの参考になれば幸いです。

それでは今回も読んでいただきましてありがとうございました。
それでは皆さまごきげんよう!

タイトルとURLをコピーしました