プロキシ認証が必要な環境下での、ClickOnceによるアプリケーション更新(その2)

前回の記事で「ただ、一回目のインストールだけは当然できないので、CDかイメージからのインストールを行って、更新URLを設定しておく必要があります」と書きました。このときは未検証のまま、一回目のインストールをローカルに発行し、更新URLを設定すれば、初回はローカルからインストールされ、あとはソフト起動時にプロキシ経由で更新ができると漠然と思っていたんですが、どうもうまくいきません。実は初回インストール時にローカルからインストールしても、更新URLが存在していると初回にアクセスして確認をしようとするらしく、結局プロキシを越えられないためにエラーになってインストールに失敗してしまうのです。これは予想外の動作でした。


なので初回のClickOnceインストールからすべてを自作することで、更新時と同じようにWebRequestに認証情報を含めてのインストールを行う必要があります。カスタムインストーラの作り方については、MSDNの「Walkthrough: Creating a Custom Installer for a ClickOnce Application - Visual Studio 2015 | Microsoft Docs」に記述がありました。このやり方と前回の記事にある更新時のプロキシ設定の仕組みを、初回インストール時にも適用するよう、インストーラを自前で作り直せばよい、ということです。インストーラまで自作しなければならないというのはけっこう面倒ですが……。


僕の場合、カスタムインストーラは普通にWindowsFormプロジェクトを作って対応しています。アンインストールとかはClickOnce自体が取り持ってくれるので、インストーラとは言いながら入力フォームがあればすむので……。