I use cx-freeze to create an MSI installer for a Python application. Let's call it application "A". It depends on another application "B". I would like my installer for "A" to include and run the MSI installer for "B". How can I create a bootstrapping/chaining installer using Inno Setup or the WiX toolset?
Answer 1:
这是一个基本的Inno Setup的脚本,它捆绑了MSI安装成一个单一的安装程序。 由于安装程序只存在于安装MSI文件,也没有必要的应用程序目录。 为了避免创建应用程序目录,使用“CreateAppDir =无”。 (感谢TLama!)
[Setup]
AppName=My Bundle Installer
AppVersion=0.1
DefaultDirName={pf}\MyCo\MyBundle
DefaultGroupName=My Bundle Group
Uninstallable=no
CreateAppDir=no
[Files]
Source: "A.msi"; DestDir: "{tmp}"
Source: "B.msi"; DestDir: "{tmp}"
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\A.msi"""
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\B.msi"""
Answer 2:
你需要使用一个引导程序/ chainer。 例如, WiX的工具集提供了一个名为概念Bundle
,可以多个包组合成一个单一的安装。
文章来源: Use WiX or Inno Setup to bundle the installation of several MSI files