由于用户混淆,我们的应用程序需要单独安装32位和64位版本的Windows。虽然32位安装程序在win64上运行良好,但它有可能造成支持头痛,我们希望防止这种情况发生。WiX:阻止32位安装程序在64位Windows上运行
我想阻止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
变量的存在性,如果这些变量不对齐,则会抛出一个错误,但逻辑不能正常工作。有没有人想出更好的解决方案?
这最终导致了诡计。我的错误是让'Condition'的逻辑倒退。 – 2010-04-06 01:18:13
Msix64需要默认情况下不在XP上的Windows Installer 3.1(请参阅http://msdn.microsoft.com/zh-cn/library/aa370522(v=VS.85).aspx) – 2011-07-21 19:52:36