我使用单个wix项目构建32位和64位版本的安装程序(指定-arch candle参数)
我希望避免客户混淆,只允许在32位操作系统上安装32位,反之亦然。相信我,为了我的目的,这是有道理的。
在64位操作系统上运行32位安装程序时,以下分支条件无法正确执行。
<?if $(sys.BUILDARCH) = x64 ?>
<Condition Message="You are attempting to run the 64-bit installer on a 32-bit version of Windows.">
<![CDATA[VersionNT64]]>
</Condition>
<?else?>
<Condition Message="You are attempting to run the 32-bit installer on a 64-bit version of Windows.">
<![CDATA[NOT VersionNT64]]>
</Condition>
<?endif ?>
但是,在32位操作系统上运行64位安装程序时出现Windows Installer错误。错误是这样的:
安装时发生错误 包。 Windows Installer返回 '1633'
搜索此错误会得到您期望的结果:
此安装包不是 在这个平台上支持。联系 您的应用程序供应商。
所以看来我正在使用“你使用错误的安装程序”的标准(非常差的)Windows安装程序错误。
有没有办法让我的病情正确开火,或者这只是不可能?
答案 0 :(得分:3)
MSI甚至不会在32位操作系统上打开64位软件包,因此甚至不会评估LaunchConditions。简而言之,不,你无能为力。