编写自定义setup.exe套件安装程序

时间:2012-08-24 14:36:39

标签: installer windows-installer installation suite

我的任务是创建一个能够处理和安装多个.msi文件的安装程序。我几乎走了InstallShield路线,但你需要Premier版本来创建套件安装,并说你付出近3000英镑甚至不能让你完全自定义UI。

对于我们的上一个版本,我编写了一个自定义Setup.exe文件,该文件与我们要安装的msi文件位于存储的文件夹中,然后以静默方式安装每个文件。这是非常基本的,我们现在需要更专业的东西。

目前我有两个主要选择:

  • 使用WiX - 这是免费的,似乎提供了很多自定义功能。我不太确定它究竟能做什么,而且需要一点时间来学习。

  • 我可以扩展我已有的东西,并构建我自己的安装程序,允许用户选择他们想要安装哪些功能/组件,哪些不需要。如果我可以让安装程序从服务器下载所需的msi文件,安装它们,然后删除它们,我更喜欢这个。我只是不想在主安装程序下载中包含一个完整的msi文件的单独文件夹。如果没有太多的努力,这是否可能?另外,使用这个我可以在“添加/删除程序”菜单中添加一个程序吗?

欢迎任何想法:)

4 个答案:

答案 0 :(得分:0)

它的免费程度取决于您的设置有多复杂,相互依赖性及其先决条件。

例如,您想要安装产品X,但它需要安装数据库服务器,需要重新启动.net框架升级。

Wix用于创建msi,所以如果你想创建一个msi可以管理几个应用程序的安装,它只会是一个帮助。

答案 1 :(得分:0)

我建议您查看WiX 3.6中Burn的功能。您可以创建一个引导程序,它可以从服务器下载您的安装包。您可以完全自定义它或使用标准的bootstrapper应用程序。您也可以使用当前的.msis。您不必将所有.msis转换为WiX以使用引导程序功能。

我建议您阅读Rob Mensching的this blog post

答案 2 :(得分:0)

WiX 3.6仍然是一个测试项目,而Burn仍在进行中。说实话,InstallShield Suite安装程序非常新,而且还在进行中。

在您对InstallShield的成本感到惊慌失措之前,您需要准确确定您的setup.exe需要做什么。然后,您需要在InstallShield和WiX之间进行功能差距分析,并提出人工估算,以便在WiX中进行,并在InstallShield中进行。

在某些情况下,现成的工具还不够成熟,推出自己的工具也是有意义的。 (想想MS SQL Server,Office,Visual Studio),但对于大多数业务应用程序,您可能只需要选择最接近您需要的工具。

答案 3 :(得分:0)

对于需要比自己的自定义setup.exe更专业的东西,比WiX和Burn更少的学习曲线,以及比InstallShield更少的钱包痛苦 - 我建议{{3不是为了MSI Factory(它会加速你的WiX学习)但是对于包含的引导程序。

学习曲线小于Burn,并且有90天的试用版,因此您可以查看它是否足够好。

InstallShield将允许您自定义安装界面,对于那个高昂的价格标签,您将获得支持和维护(当您从头开始升级时,非常非常有用)。

使用InstallShield可以节省前期成本,您可以根据WiX的时间进行投资 - 因此您确实需要进行成本/收益分析并确定您的时间价值。当你真正开始理解Windows Installer以及它的内幕时,InstallShield和WiX一样强大。许多商业开发人员将根据各个项目的要求使用两者中的元素。