WiX 安装程序无法解析条件

Kyl*_*yle 3 xml parsing wix conditional-statements

我正在尝试创建一个 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>
Run Code Online (Sandbox Code Playgroud)

错误:

[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.
Run Code Online (Sandbox Code Playgroud)

Rob*_*ine 5

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

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