HOWTO和最佳工作安装(MSI)chainer + / bootstrapper

时间:2009-10-16 14:30:39

标签: installation windows-installer

我们的产品有几种产品,客户可以安装这些产品作为单独的安装包(MSI)。

我们需要为安装提供单个软件包:

  1. 显示一个有进展的用户界面
  2. 允许用户选择要安装的功能/包
  3. 能够将一个功能约束到另一个功能(例如删除或添加其他功能)
  4. 支持单一提升(UAC)
  5. 很高兴能够自动更新(不必)
  6. 支持命令行+静默安装
  7. 包应该由隔离的装置构成(链接它们)
  8. 针对缺少的先决条件提出错误/消息
  9. 随着时间的推移支持补丁和主要升级
  10. 今天我们几乎使用MSI进行嵌套安装,这是不好的做法,我们在解决方案中面临太多问题。

    我知道有几个bootstrappers(m $ generic bootstrapper我觉得不好,BURN是WIX版本还不够成熟)

    你知道其他吗?那个工作和测试了吗? 什么是最好的方法(没有将MSI统一到单个MSI中)

3 个答案:

答案 0 :(得分:6)

dotNetInstaller看起来很有前途。我正在尝试用它来安装java作为先决条件。它带有一个GUI编辑器,因此您无需对xml进行整理以创建项目。配置文件是xml,可以从命令行运行InstallerLinker。它可以与构建服务器集成,虽然一些msbuild任务会很好。

项目主页:
http://dotnetinstaller.codeplex.com/

教程:
http://www.codeproject.com/KB/install/dotNetInstaller.aspx

答案 1 :(得分:2)

创建InstallShield InstallScript包。使用InstallScript包将.MSI与“-qn”逐个启动。我这样做并且成功了。我相信它符合您列出的所有要求。

答案 2 :(得分:1)

在Wix的Burn准备好之前,我们在bootstrappers方面没有多少选择。

如果您使用InstallShield作为msi设计器,您可以尝试的一件事是创建一个包含所有不同msi包的InstallScript项目。然后,您可以静默安装所需的包。 InstallShield非常昂贵,所以如果你还没有它,你可能不得不最终推出自己的引导程序。