インストーラーを作成する必要がある製品があります。状況に応じてインストールまたは非インストールが可能なコンポーネントが多数あります。
インストール パッケージを出荷するときに、インストールする追加コンポーネントをいくつでも含めることができるようにしたいと考えています。
たとえば、Foo Manager Pro には以下が含まれます。
- Foo マネージャー コンソール
- Foo Manager データベース
- フーマネージャーサービス
それは次のようなものとして出荷される可能性があります:
- FooManagerInstaller.exe
- FMPConsole.pkg
- FMPDatabase.pkg
- FMPServices.pkg
パッケージは次のようなもので構成されます。
- マニフェスト
- デプロイするファイル
- 実行する追加のスクリプト
(例: ファイル foo.config の検索、XML 操作の実行)
クライアントがカスタム スキンと一連のプラグインをインストールの一部として追加する場合は、独自のパッケージを作成します。
- FMPConsoleSkins.pkg
- ClientWebservices.pkg
そのクライアントが、さらにカスタマイズを追加したい他の誰かにそれを発送した場合、同じ方法でそれを行うことができます.
これをゼロから構築することもできますが、この種のインストール システムが既に存在するかどうかを確認したかったのです。
これとそれほど遠くないことを行う一連の NAnt スクリプトが既にあります。しかし、それらは保守が難しく、非常に複雑です。インストーラーに期待される「便利な機能」は提供されません (展開されたファイルを追跡し、インストールが失敗した場合にそれらを削除するなど)。
NSIS を少し調べて、WiX を使用して MSI を構築しましたが、独自のインストーラー言語を発明することなく、ダウンストリームが追加のパッケージを提供する機能を提供できるかどうかは明らかではありません。