由于用户的困惑,我们的应用程序需要单独的安装程序用于 32 位和 64 位版本的 Windows。虽然 32 位安装程序在 win64 上运行良好,但它可能会造成支持问题,我们希望防止这种情况发生。
我想阻止 32 位 MSI 安装程序在 64 位 Windows 机器上运行。为此,我有以下条件:
<Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows.">
<![CDATA[Msix64 AND (NOT Win64)]]>
</Condition>
Win64 定义如下:
<?if $(var.Platform) = "x64"?>
<?define PlatformString = "64-bit"?>
<?define Win64 ?>
<?else?>
<?define PlatformString = "32-bit"?>
<?endif?>
问题是,我无法让这张支票正常工作。要么一直触发,要么不触发。目标是根据msix64
编译时Win64
变量检查运行时变量的存在,如果它们不对齐,则抛出错误,但逻辑无法按照我的预期工作。有没有人提出更好的解决方案?