在32位Windows操作系统上,64位操作系统所需的安装条件不会失败

时间:2011-06-09 21:34:29

标签: wix windows-installer wix3

我使用单个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安装程序错误。

有没有办法让我的病情正确开火,或者这只是不可能?

1 个答案:

答案 0 :(得分:3)

MSI甚至不会在32位操作系统上打开64位软件包,因此甚至不会评估LaunchConditions。简而言之,不,你无能为力。