【问题标题】:Wix VersionNT64 not workingWix VersionNT64 不工作
【发布时间】:2016-09-08 14:33:32
【问题描述】:

我正在安装一些驱动程序以及使用 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 位。

有什么想法吗? 谢谢

【问题讨论】:

    标签: wix


    【解决方案1】:

    关注

    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)
    

    等等。

    如果你只关心 x64

    (VersionNT=VersionNT64)
    

    将适用于 x64

    【讨论】:

    • 令人惊讶的奇怪历史答案。但现在是一个答案。我不需要了解一切。祝你好运。
    【解决方案2】:

    请注意,Condition/@Message 会导致来自Condition/@Level 的反向测试与行为关系。来自@Message 的结果LaunchCondition 条目包含如下描述的条件:

    必须计算为 True 才能开始安装的表达式。

    由于条件Not VersionNT64 在 32 位系统上为真,因此允许继续安装。在 64 位系统上是错误的,所以安装被阻止并且应该显示消息。条件VersionNT64 仅在 64 位系统上为真,因此应该有相反的行为;不清楚您所说的“不起作用”是什么意思。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-03-25
      • 2018-12-02
      • 1970-01-01
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多