为什么WiX Burn不会根据VersionMsi评估条件?

时间:2014-10-29 12:58:03

标签: wix windows-installer burn wix3.8

我正在使用仍支持Windows Server 2003的产品的安装程序,至少需要更长时间。我想确保存在Windows Installer 4.5或更高版本,因为包含的SQL Server Express安装程序将因较旧版本的Windows Installer而失败。我将以下Condition添加到我的WiX 3.8刻录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似乎说我在正确的轨道上,但我还没有。任何想法都将不胜感激。

1 个答案:

答案 0 :(得分:0)

如果由于1708错误而到达此处,则可能需要特定的MSI 4.5更新。

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

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