2012-06-27 70 views
3

我有两个适用于32位和64位平台的MSI安装程序,我想创建一个单一的安装程序,以便运行基于它所运行平台的相应MSI。我明白,单靠MSI是不可能的。是否可以使用NSIS来打包MSI安装程序?

所需的软件包非常简单,只需检查它正在运行的平台的位置并启动相应的MSI即可,但我还没有找到任何可以实现这一目的的工具免费工具。我遇到了NSIS,看起来很有前途,有谁知道它是否适合这项任务?

+1

[早期研究](http://nsis.sourceforge.net/Embedding_other_installers)看起来很积极。 – fredley

回答

5

使用x64.nsh来检测平台,然后提取执行&。像这样:

!include x64.nsh 
Section 
Initpluginsdir 
${If} ${RunningX64} 
    File "/oname=$pluginsdir\inst.msi" "myfiles\amd64.msi" 
${Else} 
    File "/oname=$pluginsdir\inst.msi" "myfiles\x86.msi" 
${EndIf} 
ExecWait '"msiexec" /i "$pluginsdir\inst.msi"' 
SectionEnd 
相关问题