はじめに
Windowsデスクトップアプリを配布する技術として比較的最近登場したSquirrel.Windowsを
https://github.com/Squirrel/Squirrel.Windows
を参考に簡単にまとめた。
Squirrel.Windowsとは
- Windowsアプリをアップデート・配布するためのフレームワーク
-
Nugetパッケージを使ってインストールとアップデートパッケージを作成
- Nuget ・・・Microsoftがサポートする.NETのコード共有メカニズム
.Netで作られていないアプリケーションでも使用可能
ClickOnceから移行可能
ClickOnceとの比較
Windowsアプリの配布方法として一般的なClickOnceとSquirrel.Windowsを比較すると次のようになる
ClickOnce | Squirrel.Windows | |
---|---|---|
新しさ | 古い | 新しい |
ライセンス | MS製 | OSS |
アップデート時の問い合わせ | あり | なし |
実装作業量 | 比較的軽い | 比較的重い |
バグの修正 | 今後行われないかも | 随時修正(するはず) |
メモ
- Squirrel.WindowsはNugetでパッケージングする部分が若干手間がかかるためClickOnceと比べると手間がかかるそう。
- Squirrel.Windowsもアップデート時の問い合わせを発生させることは可能
Squirrel.Windowsの機能について
Squirrel.WindowsはGoogle Chromeのように簡単で早く、自動でインストールとアップデートを実現するために以下の機能を提供することを目指している。
-
設定
- 既存の.NETアプリケーション用のインストーラを容易に統合する
- クライアントAPIは更新をチェックし、(できればHTMLで)更新履歴を受け取ることができる。
- 開発者は、インストールとアップデート中にイベントとカスタムアクションの制御が可能
- アンインストール時にアプリケーションのクリーンを行うことが可能
-
パッケージング
- 既存の.NETアプリケーションを指定してインストーラを生成するのが、非常に簡単
- アプリケーションのアップデートの作成が、簡単に自動化できる
- デルタファイルをサポートしているので、更新パッケージのサイズが削減可能
-
アプリケーションの配布中の動作
- アップデートサーバのホスティングが単純なHTTPを通して行われる
-
インストール
- UACダイアログがない
- ローカルのユーザーアカウントにインストール
- 再起動を行わない
-
アップデート中の動作
- アプリケーションの実行中にアップデートが適用可能
- 再起動しない
- 現在作動中の動作を中断しない
最後に
ひとまず現状の更新はここまで。
作業ステップについては随時更新予定。