GitHub にホストしている Windows デスクトップアプリを ClickOnce で配布する
執筆日時:
せっかく作ったツールだけど、アップデートのたびに毎回 ZIP ファイルをダウンロードして展開してユーティリティフォルダーにコピーして……という作業が面倒だったので、ClickOnce で配布することにした。
自分で ClickOnce の公開用サーバーを用意するのは面倒なので、できれば ClickOnce のセットアップファイルも GitHub に置きたい。やり方がわかんないので StackOverFlow さまにお伺いを立ててみた。
さすがやでぇ。以下はそれを試してみたよっていう話。
1. とりあえずローカルに発行してコミットする
まず、プロジェクトプロパティの[公開]タブで、ClickOnce の発行を行う。発行先は初期設定の publish\ でいいかと。
Visual Studio 向けの .gitignore を利用している場合は、あらかじめ Click-Once 関連の設定をコメントアウトしておくとよい。
# Click-Once directory # publish/
ついでに .gitattributes も編集しておく。
*.manifest binary *.application binary *.deploy binary
これをコミットして GitHub にプッシュしておく。
2. ClickOnce のインストール フォルダーの URL を変更
GitHub に publish フォルダーがちゃんとアップロードされているのを確認。
ここからセットアップファイルの Raw URL を取得しておく。今回は
だった。
次にプロジェクトのプロパティ画面の[公開]タブに戻り、ClickOnce のインストール フォルダーの URL を変更する。
先ほど取得した Raw URL を cdn.rawgit.com に書き換えたり、blob を消したりごにょごにょ。
cdn.rawgit.com だと ClickOnce 関連のファイルの Content-Type が適切に設定されているみたいで、インストールがうまくいく。
これを保存、発行、コミット、プッシュして、GitHub からセットアップファイルをダウンロード・実行すると、ちゃんとインストール処理が始まるはず。
インストール フォルダーの URL を設定すれば、アップデートの自動チェックも利用できるようになる(/・ω・)/
追記(2016/08/31)
cdn.rawgit.com は一度キャッシュした URL を更新しないようなので、実際には branch や tag を使って新しい URL を生成し、それをインストール フォルダーの URL にする必要があるみたい。コツをつかんだら自動化したいな……。
追伸
Aoba の ClickOnce 発行でエラーが出るのでぐぐったら、昔の自分のブログを発見。
メモは大事。