【发布时间】:2021-09-22 10:52:18
【问题描述】:
如果用户选择安装需要这些第 3 方依赖项的软件组件,我试图实现的是一种仅在捆绑包中安装特定第 3 方依赖项的方法。
我们更具体的用例: 在捆绑包中,我们首先为我们自己的软件运行自定义安装程序,用户可以在其中选择他们需要的功能。用户可能会选择安装一个使用激光扫描仪来检测事物的软件。如果用户确实选择了该选项,则应稍后在捆绑包中安装第 3 方激光扫描仪配置器软件。
到目前为止,我尝试的是在 Bundle 元素中添加以下 util:FileSearch 元素:
<util:FileSearch Id="CheckOurSoftwareExists"
Path="[WindowsVolume]\Company\Software\OurSoftware\OurSoftware.exe"
Variable="OURSOFTWAREEXISTS"
Result="exists" />
并在Chain 元素内的ExePackage 元素中使用它:
<ExePackage Id="LaserScannerConfiguratorInstaller"
SourceFile="3rd-party-installers\path\to\laser-scanner-configurator-installer.exe"
InstallCondition="OURSOFTWAREEXISTS" />
这不起作用,因为util:FileSearch 应该在任何捆绑安装程序启动之前已经执行。即使 InstallCondition 属性在第 3 方安装程序启动之前被评估,变量 OURSOFTWAREEXISTS 之前已经被赋予了一个值。
那么对于这个问题有哪些解决方法呢?
【问题讨论】:
-
特征选择发生在引导程序 ui 还是 msi ui 中?
-
@ChristopherPainter 功能选择目前正在 MSI UI 中进行。
标签: installation wix