自動更新ライブラリを比較する
ClickOnceはどうも制限が多すぎるので、自動更新ライブラリを比較してみようと思います。ぱっと見有望そうなのは
かな。メモを追記していきます。とりあえず適当に文章で書いておこう。
UI
- NetSparkleはライブラリ自体がUIを持っていて、更新履歴とかを出してくれる。多言語対応している。
- NAppUpdateはライブラリは更新フレームワークのみ。サンプルとしてUIをつかったものは同梱されてた。
その他
ひとつずつ比較しにくいので、とりあえず、機能一覧を抄訳してみようかな。
- Windowsインストーラベースを必要とする更新ではなく、単体で更新機能を提供する
- リリース情報を通知できる
- IEコントロールを使って、更新ニュースを表示できる
- 更新経過をユーザに通知できる
- アプリケーション側にはコードを追加しなくても良いので、モジュールの更新削除はとても簡単
- NetSparkleへの言及はなく、アイコンやアプリ名が自由に使える
- DSA書名による高セキュリティなアップデートをサポート
- スタートメニューを開発するためのUpdateChecker-Helperを持つ
- 多言語対応
- ライブラリは1DLLにまとまっており、.NET 2.0以上さえあればよし。
- コールドアップデートをサポートしていて、実行中に準備をし、置き換えられないファイルがあってもリスタート時に置き換えてくれる。
- 更新チェックや更新準備などのタイミングを好きなように設定できる。ロールバックできる。
- アップデートはタスクとして表現されていて、現在はFileUpdateTask(ファイルをダウンロードして置き換える単純なタスク)のみが実装されている。インタフェースを実装すればオリジナルのタスクが追加できる。たとえば、レジストリのアップデート・データベースのアップデート(スキーマ更新・データ更新)、Luceneインデックスの更新、Diff形式のパッチなどなど。
- タスクレベルでバックアップとロールバックがサポートされる。
- 条件付きアップデートが出来る。すべてのタスクに条件を付けられる。条件に合わないタスクは無視される。この条件も、オリジナルの実装が可能。
- 条件タイプがサポートされている。ファイルの存在チェック、バージョン、サイズ、日付、チェックサム、OSビット、レジストリのチェック、OSのチェック、.NETバージョンのような他の事前条件のチェックなどもできる。
- Feedフォーマットは、Adobe Appcast形式と、オリジナルなNauXMLの二つをサポート。IUpdateFeedReaderを実装すれば、オリジナル形式も可能。
- ソースのダウンロードも抽象化されている。規定でSimpleWebSourceとMemorySourceが実装されている。