WIX工具集 - 根据用户输入安装先决条件

时间:2016-04-26 14:37:12

标签: wix installer

我们正在使用WIX工具集来自动化长时间的安装过程。其中很大一部分是根据客户想要安装的产品版本安装许多先决条件。

e.g。安装中涉及的过滤器包(.msi文件)只需要与某种类型的产品一起安装,因此不可能简单地将其链接成一个包,因为我们无法预先知道客户选择哪个版本

有什么方法可以解决这个问题而无需创建4个不同的安装程序或安装所有先决条件而不管版本如何?

提前致谢。

2 个答案:

答案 0 :(得分:1)

实现此目的最简单,最易维护(imo)的方法是使用刻录引导程序,并为用户可以安装的每个产品版本安装单独的msi。

刻录boostrapper还包含所需的所有必备软件包,但只安装用户选择安装的特定版本所需的软件包。

您说您不能在过滤器包中包含过滤器包,因为您不知道客户是否需要它,但这是引导程序的重点。您的引导程序应该在运行时收集信息并相应地设置变量。使用MsiPackage元素上的InstallCondition,您可以确定是否需要安装msi。

引导程序进程是运行检测,执行UI,计划,执行。在计划期间,您将确定在安装期间将运行和安装哪些软件包。引导程序应用程序有权设置任何程序包进行安装或卸载,覆盖引擎决定执行的任何操作。

您还可以在一个MSI中包含所有msi版本的东西,并通过功能组控制它,这将允许您使用产品的所有版本的一个MSI,但这可能会变得臃肿和复杂,多个“重复”组件来自你的产品的不同版本,所以我认为这将成为后来的可维护性。

答案 1 :(得分:0)

您可以添加一个自定义对话框,其中包含用户可以选择安装内容的复选框。

这些复选框将变量设置为0或1.您可以在installcondition中使用这些变量。

我相信你甚至可以有条件地显示复选框(比如已经安装了2个,你不想让用户选择安装已安装的2)