获取Wix托管引导程序应用程序中的包InstallCondition

获取Wix托管引导程序应用程序中的包InstallCondition,wix,windows-installer,burn,Wix,Windows Installer,Burn,我有一个包含多个包的Wix包。两个包是相互排斥的。我的意思是它们都包括在内,因为一个需要安装在32位机器上,另一个需要安装在64位机器上。为了解决这个问题,我定义了一个包组,如下所示: <Fragment> <PackageGroup Id="Drivers"> <MsiPackage Id="Driversx64" InstallCondition="VersionNT64" SourceFile="SRC\drivers64.msi" Display

我有一个包含多个包的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>

然后,在链中我只包含

由于引擎根据操作系统正确规划安装,因此一切正常

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

  • 从自定义引导程序确定一个包是否应该对UI可见,以及它的级别
  • 从自定义引导程序确定包的InstallCondition的计算结果是否为true或false

但底线是,我希望确保我的自定义BA能够遵守捆绑包中声明的内容,只要目标系统上允许安装哪些包。

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

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

谢谢-我在3.10.2上,所以我将升级到3.10.3,看看是否可以显示该属性。我按照您的建议升级并解析了安装条件,然后运行EvaluateCondition,它成功了-谢谢!谢谢-我在3.10.2上,所以我将升级到3.10.3,看看是否可以显示该属性。我按照您的建议升级并解析了安装条件,然后运行了EvaluateCondition,它成功了-谢谢!