在 Wix Managed Bootstrapper 应用程序中获取包 InstallCondition

Getting Package InstallCondition In Wix Managed Bootstrapper Application

我有一个包含多个包的 Wix 包。几个包是相互排斥的。我的意思是它们都包含在内,因为一个需要安装在 32 位机器上,另一个需要安装在 64 位机器上。为了解决这个问题,我定义了一个这样的包组:

<Fragment>
  <PackageGroup Id="Drivers">
    <MsiPackage Id="Driversx64" InstallCondition="VersionNT64" SourceFile="SRC\drivers64.msi" DisplayInternalUI="no" Visible="no" ForcePerMachine="yes" EnableFeatureSelection="yes"/>
    <MsiPackage Id="Driversx86" InstallCondition="NOT VersionNT64" SourceFile=".SRC\drivers32.msi" DisplayInternalUI="no" Visible="no" ForcePerMachine="yes" EnableFeatureSelection="yes"/>
  </PackageGroup>
</Fragment>

然后,在链中我只包含 <PackageGroupRef Id="Drivers"/>

一切按预期进行,因为引擎根据操作系统正确地计划了安装。

我遇到的问题是我想显示将要安装的软件包列表,我想:

但最重要的是,我想确保我的自定义 BA 可以遵守捆绑包中声明的内容,以及允许在目标系统上安装哪些软件包。

在运行期间,将有一个名为 BootstrapperApplicationData.xml 的文件。该文件将包含有关每个包的信息,包括 InstallCondition(不确定何时添加,可能需要 v3.10.3)。您将能够将每个条件的值传递给引擎的 EvaluateCondition 方法以确定它是真还是假。