加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

WiX:防止32位安装程序在64位Windows上运行

发布时间:2020-12-13 20:55:11 所属栏目:Windows 来源:网络整理
导读:由于用户混淆,我们的应用程序需要单独的32位和64位版本的Windows安装程序。虽然32位安装程序在win64上运行正常,但它有潜力创建支持头痛,我们希望防止这种情况发生。 我想防止32位MSI安装程序在64位Windows机器上运行。为此,我有以下条件: Condition Mes
由于用户混淆,我们的应用程序需要单独的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变量的存在,如果这些变量不排队,则会发出错误,但逻辑不能正常工作。有没有人想出更好的解决方案?

将Condition元素仅包含在32位包中(即使用?if?preprocessor语句)。条件将是“NOT Msix64”:启动条件是必须是真实的,所以如果设置了Msix64,启动条件将失败,这意味着它是一个x64操作系统和32位软件包,正确的做法是块。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读