我正在使用wix(WiX v3.10.3(Stable))安装一些驱动程序和一个程序。 安装的驱动程序取决于机器是32位还是64位。
我一直在关注我发现使用
的教程<Condition Level="1"><![CDATA[Not VersionNT64]]></Condition>
和
<Condition Level="1"><![CDATA[VersionNT64]]></Condition>
这些似乎不像我预期的那样工作,所以我创建了一个基本的消息来测试它们。
<Condition Message="32 bit"><![CDATA[Not VersionNT64]]></Condition>
如果安装程序在32位计算机上运行,则应在消息中显示“32位”,但我没有。 但它确实在64位机器上显示它。
也
<Condition Message="64 bit"><![CDATA[VersionNT64]]></Condition>
无法在32位或64位上运行。
有什么想法吗? 感谢
答案 0 :(得分:0)
请注意,Condition/@Message
导致对来自Condition/@Level
的行为关系进行反向测试。 @Message
生成的LaunchCondition条目包含描述为的条件:
必须评估为True才能开始安装的表达式。
由于条件Not VersionNT64
在32位系统上为真,因此允许继续安装。它在64位系统上是错误的,因此安装被阻止并且应该显示消息。条件VersionNT64
仅在64位系统上为真,因此应该具有相反的行为;目前还不清楚你的意思是“不起作用”。
答案 1 :(得分:0)
关注
https://www.advancedinstaller.com/user-guide/qa-OS-dependent-install.html#VersionNT64
VersionNT64存储与VersionNT相同的版本号,因此可以检查特定版本的x64
(VersionNT=501) AND (VersionNT64<>501)
正在检查XP,但只有32位
可能必须列出每个版本:
(VersionNT=600) AND (VersionNT64<>600)
(VersionNT=601) AND (VersionNT64<>601)
ect。
如果您只关心x64
(VersionNT=VersionNT64)
将适用于x64