根据CPU架构选择MSI的安装程序(x86 32位,x64 64位等)

时间:2010-11-08 21:10:46

标签: installer 32bit-64bit inno-setup nsis x86-64

我有一个uses DIFxApp and an Orca transform to install drivers的安装程序(Visual Studio安装项目)。问题是有两个DIFxApp合并模块 - 一个用于x86,另一个用于x64。如果我同时引用它们,则安装仅适用于64位计算机,而仅引用x86版本允许我在32位计算机上安装。

似乎唯一的解决方案是创建两个MSI(一个用于x86,一个用于x64),每个都引用正确的合并模块。我的问题是我应该如何创建一个安装程序,根据目标机器的处理器选择安装哪个MSI?

我曾与NSIS合作过一段时间,所以走这条路可能最容易。 其他可能性包括Inno-SetupdotNetInstaller

类似问题(但答案不充分):

3 个答案:

答案 0 :(得分:19)

如果你决定选择NSIS:

!include "x64.nsh"
${If} ${RunningX64}
   MessageBox MB_OK "running on x64"
${Else}
   MessageBox MB_OK "running on x86"
${EndIf}

答案 1 :(得分:2)

您可以使用自定义操作来检测操作系统,然后调用正确的安装程序。

我在这里举了一个例子:single-msi-to-install-correct-32-or-64-bit-c-application

答案 2 :(得分:0)

如何制作一个检测os类型的小程序(启动程序)(64 0r 32位,应该很容易)。然后,小程序根据检测结果启动正确的安装程序。程序不应该有任何窗口,并且与安装程序具有相同的图标。只需向客户提供所有三个文件,installer.exe(程序),inst32.msi和inst64.msi。如果这对您的客户来说太多了,那么只需将它们压缩为自动解压缩zip,即自动启动installer.exe。