我们有一个需要为其创建安装程序的产品。它有许多组件,可以根据情况需要安装或不安装。
当我们发布我们的安装包时,我们希望能够包含任意数量的附加组件来安装。
例如,Foo Manager Pro 包含:
- Foo 管理器控制台
- Foo 管理器数据库
- Foo 经理服务
这可能会像这样运送:
- FooManagerInstaller.exe
- FMPConsole.pkg
- FMP数据库.pkg
- FMPServices.pkg
一个包可能包含以下内容:
- 显现
- 要部署的文件
- 要执行的附加脚本
(例如查找文件 foo.config,进行一些 XML 操作)
如果客户想要添加自定义皮肤和一系列插件作为安装的一部分,他们会创建自己的包:
- FMPConsoleSkins.pkg
- ClientWebservices.pkg
如果该客户随后将其发送给想要添加更多定制的其他人 - 他们可以以相同的方式这样做。
我们可以从头开始构建它——但想检查这种安装系统是否已经存在。
我们已经有了一组 NAnt 脚本,它们的功能与此相差不远。但是它们很难维护,而且相当复杂。它们没有提供我们期望从安装程序中获得的任何“好处”(例如跟踪部署的文件并在安装失败时将其删除)。
我们一直在研究 NSIS 并使用 WiX 构建 MSI,但尚不清楚这些能否为我们提供下游提供额外软件包的能力,而无需发明我们自己的安装程序语言。