2

我有一个解决方案,其中包含多个 64 位或 32 位特定的 dll,我想使用安装程序进行部署。我在 InstallShield 2012 中有两个基本的 msi 项目,一个用于 32 位系统,另一个用于 64 位系统。我还要求 64 位安装程序不能在 32 位系统上运行,反之亦然

将 64 位安装程序限制为 64 位系统很容易,但我无法确定是在 32 位系统中。

以下是我已经尝试过的解决方案:

检查 Windows 安装程序属性:

  • NOTintel64(不起作用,因为它指的是处理器而不是操作系统)
  • VersionNT64=whatever(不起作用,因为该值对于 32 位系统未定义)

另外,我知道环境变量 PROCESSOR_ARCHITECTURE 为 32 位操作系统保存 x86,但我找不到在 basic-msi 项目上读取它的方法。

4

1 回答 1

1

您是否在 x86 设置中尝试过“Not VersionNT64”作为启动条件?这可以很好地禁止在 x64 系统上安装。条件中没有“=whatever”。在 x86 上它是未定义的,这意味着它是假的,这意味着启动条件仅在 x86 系统上评估为真。

于 2014-09-24T16:44:43.177 回答