我有两个 MSI 安装程序,用于 x86 和 x64 架构。我想将它们捆绑到一个统一的安装程序中,而不是根据机器的架构选择正确的安装程序并启动它。
我在 dotNetInstaller 上取得了一些成功,但它只是创建了一个额外的 exe 文件,msi 必须作为单独的文件包含,所以这是不合适的。
我不敢相信这是一项如此罕见的任务,但我找不到太多其他东西,有人能指点我一个好的捆绑/引导程序吗?
我有两个 MSI 安装程序,用于 x86 和 x64 架构。我想将它们捆绑到一个统一的安装程序中,而不是根据机器的架构选择正确的安装程序并启动它。
我在 dotNetInstaller 上取得了一些成功,但它只是创建了一个额外的 exe 文件,msi 必须作为单独的文件包含,所以这是不合适的。
我不敢相信这是一项如此罕见的任务,但我找不到太多其他东西,有人能指点我一个好的捆绑/引导程序吗?
Advanced Installer有一个名为“将 EXE 转换为 MSI ”的功能,它也可以用来打包您的 MSI 包。
Advanced Installer 的另一个选项是在Prerequisites page中简单地将两个 MSI 软件包添加为基于功能的先决条件。
我使用了NSIS,它是免费的、最小的、可编写脚本的,并且提供了良好的压缩。
我的脚本如下:
!include x64.nsh
AutoCloseWindow true
SilentInstall silent
SetCompressor /SOLID lzma
Section
Initpluginsdir
${If} ${RunningX64}
File "/oname=$pluginsdir\inst.msi" "64bit.msi"
${Else}
File "/oname=$pluginsdir\inst.msi" "32bit.msi"
${EndIf}
ExecWait '"msiexec" /i "$pluginsdir\inst.msi"'
SectionEnd
这将编译为一个安装程序,该安装程序会启动正确的 MSI 安装程序,而无需额外的 UI。