WiX安装程序无法解析条件。

3
我将尝试创建一个WiX安装程序,确保用户使用的是Windows 7,并且未安装.NET Framework 4.5。以下是错误代码和捆绑包中的XML/WXS代码。我不知道为什么它不能理解这个,除非是所有括号的问题。但是,如果没有它们,它就无法理解NOT的含义。 代码:
<Chain>
    <ExePackage Id="PrePackage" SourceFile="dotNetFx45_Full_Setup.exe" InstallCondition="(VersionNT &gt;= v6.1) AND NOT (Net4FullVersion &gt;= 4.5)" />
    <MsiPackage Id="MainPackage" SourceFile="SampleFirst.msi" InstallCondition="VersionNT &gt;= v6.1" />
</Chain>

错误:

[0A20:0954][2014-06-23T12:07:14]e000: Error 0x8007000d: Failed to parse condition "(VersionNT >= v6.1) AND NOT (Net4FullVersion >= 4.5)". Unexpected character at position 49.
2个回答

5

经过本地实验,看起来Net4FullVersion需要引用其版本号;这意味着在您的情况下,引号必须被转义:

 <ExePackage Id="PrePackage" SourceFile="dotNetFx45_Full_Setup.exe" InstallCondition="(VersionNT >= v6.1) AND NOT (Net4FullVersion >= &quot;4.5&quot;)" />

好的,我按照你的建议尝试更新了我的'>'符号(同时也更新了我的问题中的代码),但我仍然得到完全相同的错误,只是时间戳已经更新。 - Kyle
我假设如果我使用=而不是>=,它只会在找到4.5而不一定是4.5.2或理论上的4.6时评估为true。 - Kyle
我只是本地查看,但似乎Net4FullVersion有问题... - Rob Levine
更新:我怀疑之前提到的转义“大于号”可能是不必要的。 - Rob Levine

2

Burn版本与字符串和数字不同,不像Windows Installer处理版本那样。这意味着您需要使用“v”前缀,如VersionNT >= v6.1


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接