【问题标题】:Why isn't WiX Burn evaluating a Condition based on VersionMsi?为什么 WiX Burn 不根据 VersionMsi 评估条件?
【发布时间】:2014-10-29 12:58:02
【问题描述】:

我正在为仍然支持 Windows Server 2003 的产品开发安装程序,至少支持时间更长一些。我想确保存在 Windows Installer 4.5 或更高版本,因为包含的 SQL Server Express 安装程序将在旧版本的 Windows Installer 中失败。我将以下Condition 添加到我的WiX 3.8 Burn Bundle,但它没有触发。

<bal:Condition Message="This software requires Windows Installer 4.5.">
  <![CDATA[VersionMsi >= v4.5]]>
</bal:Condition>

我已在我正在测试安装的虚拟机上运行msiexec -?,以验证是否存在 Windows Installer 3.01。我确保包含xmlns:util="http://schemas.microsoft.com/wix/UtilExtension" 声明并引用WixBalExtension.dll。我还验证了以下类似条件是否有效,允许我验证是否安装了 .NET Framework 4。

<bal:Condition Message="This software requires Microsoft .NET Framework 4.0.">
  <![CDATA[NETFRAMEWORK40FULL]]>
</bal:Condition>

VersionMsiBurn built-in variables 之一,所以我不确定为什么我的情况不起作用。 This exchange 似乎说我走在正确的轨道上,但我还没有。任何想法将不胜感激。

【问题讨论】:

    标签: wix windows-installer burn wix3.8


    【解决方案1】:

    如果您是由于 1708 错误而达到此目的,那么您可能需要特定的 MSI 4.5 更新。

    在这些情况下,您需要显式测试 msi.dll 的版本,而不是 VersionMSI 变量。

    请参阅 Windows SDK 中 Windows Installer 4.5 的单击一次引导程序包清单,了解每个 MSI 更新包的正确条件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-06-12
      • 1970-01-01
      • 2014-12-20
      • 2015-11-02
      • 1970-01-01
      • 1970-01-01
      • 2017-04-24
      相关资源
      最近更新 更多