私は、Windows アプリケーションで利用できる幅広いインストールおよび Web 展開ソリューションを評価してきました。ここで明確にします (詳細は省きますが、これらのツールは他の質問でカバーされています)。オプションに関する私の理解:
- NSIS - セットアップ実行可能ファイルを生成する無料ツール。小さなバイナリ。特殊な、時には鈍いスクリプト言語。
- Inno Setup - 実行可能ファイルをセットアップするための無料ツール. さまざまなバイナリ圧縮スキーム。Pascal スクリプト エンジン。
- WIX - MSI バイナリを生成するための無料ツールセット。XML 定義言語。
- WIX ClickThrough - パッケージ化、Web ダウンロード、および自動更新検出用の追加ツール (現在は WIX コアの一部)。
- InstallShield - インストール パッケージ用の商用開発環境。MSI バイナリを生成します。C に似た InstallScript 言語。
- Wise - インストールパッケージ用の商用開発環境. MSI バイナリを生成します。
- ClickOnce - アプリケーションを Web サーバーに公開するための Visual Studio がサポートするフレームワークで、更新の自動検出が可能です。カスタム インストール要件 (INI ファイル、レジストリなど...) はサポートされていません。パッケージは MSI バイナリとしてセットアップされます。
- Install Aware - インストール用の商用開発環境。MSI バイナリを生成します。自動更新フレームワーク (Web 更新)。
見逃した場合は、お知らせください。
また、StackOverflow でこれらのテクノロジに関する有益な議論を見つけました。
私はこれらのソリューションのいくつかと、少数の独自の内部インストール ソリューションを使用してきました。彼らは主に、インストールをパッケージ化し、開発者がランタイム環境にアクセスするためのフレームワークを提供することに関心があります。Web 展開と自動ソフトウェア更新の要件が高まる中、ソフトウェアの Web 配信とその後の更新のフレームワークについて、開発者の間でより多くのコンセンサスが得られると期待していましたが、実際にはコンセンサスが見つかりませんでした。確かに利用可能なソリューション (ClickOnce、ClickThrough、InstallShield Update Service) がありますが、それぞれにかなりの制限があります (これらのいずれかが間違っている場合は修正してください)。次のいくつかを提供するフレームワークに興味があります。
- サードパーティによる更新のホスティング/管理。
- クライアント環境 (INI ファイル、レジストリなど) へのアクセス。
- ユーザー登録/有効化。
- フィードバック/エラー報告
これにより、Web 展開の問題に取り組む最善の方法は、独自に構築された独自のソリューション (おそらく既存のインストーラー パッケージを活用する) を使用することであるという強い印象を受けています。私は、この種のソリューションが多くの成功したアプリケーションでうまく機能するのを見てきました。
- FileZilla - update.filezilla-project.org への HTTP リクエストで更新を確認し、NSIS バイナリをダウンロードして (私が思うに)、シャットダウンしてインストールを実行します。
- Massively Multiplayer ゲームの自動更新は完全に必要であり、独自のシステムを使用して普遍的に実装されています。
最後に、私の質問に:
- 必要な機能を提供する Web 展開フレームワークを見逃していませんか?
- 私の要件は具体的すぎて、サードパーティのフレームワークが提供することを合理的に期待できませんか?
- 購入するか、構築する必要がありますか?