【发布时间】:2014-09-21 12:08:16
【问题描述】:
我有一个包含多个 64 位或 32 位特定 dll 的解决方案,我想使用安装程序进行部署。 我在 InstallShield 2012 中有两个基本的 msi 项目,一个用于 32 位系统,另一个用于 64 位系统。 我还要求 64 位安装程序不能在 32 位系统上运行,反之亦然。
将 64 位安装程序限制为 64 位系统很容易,但我无法确定是在 32 位系统中。
以下是我已经尝试过的解决方案:
检查 Windows 安装程序属性:
- NOTintel64(不起作用,因为它指的是处理器而不是操作系统)
- VersionNT64=whatever(不起作用,因为 32 位系统的值未定义)
另外,我知道环境变量 PROCESSOR_ARCHITECTURE 为 32 位操作系统保存 x86,但我找不到在 basic-msi 项目上读取它的方法。
【问题讨论】:
-
相同的as this,但是是IS方式。如果您没有得到答案,请使用供应商的论坛。
-
发布该问题的人正在询问如何输出特定消息。他已经实现了我想要使用环境变量的行为。我刚刚在 Flexera 论坛上发布了这个问题。感谢您的建议。
-
您是否尝试过在 x86 设置中将“Not VersionNT64”作为启动条件?这可以很好地禁止在 x64 系统上安装。条件中没有“=whatever”。在 x86 上它是未定义的,这意味着它是假的,这意味着启动条件仅在 x86 系统上评估为真。
-
我很确定我试过了。无论如何,我现在又做了一次,它成功了。谢谢!
-
@PhilDW,您能否将该评论转换为答案?
标签: x86 windows-installer installshield installshield-2012 basic-msi