2013-03-31 129 views
3

我使用cx-freeze为Python应用程序创建MSI安装程序。我们称之为应用程序“A”。它取决于另一个应用程序“B”。我希望我的安装程序“A”包含并运行“B”的MSI安装程序。如何使用Inno Setup或WiX工具集创建引导/链接安装程序?使用WiX或Inno Setup捆绑安装多个MSI文件

+0

Inno安装程序进入了这个位置? – Deanna

+0

@Deanna,↓↓↓:-) – TLama

+1

@TLama我看到了答案,但是这似乎与涉及到使用cx-freeze并创建MSI包(其中包含另一个MSI包)的问题无关。 Inno给出的答案没有提到cx-freeze,也没有创建MSI包,只是提取/运行其他两个MSI包。要么是问题是错误的,要么是OP缺少大量的上下文。 – Deanna

回答

5

这是一个基本的Inno Setup脚本,它将两个MSI安装捆绑到一个安装程序中。由于安装程序仅用于安装MSI文件,因此不需要应用程序目录。为避免创建应用程序目录,请使用“CreateAppDir = no”。 (感谢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""" 
+3

如果这是你的问题,请在你的脚本中设置['CreateAppDir'](http://jrsoftware.org/ishelp/topic_setup_createappdir.htm)指令为'no '并且不会创建目录,也不会显示目录选择页面。 [+1] – TLama

+0

@TLama谢谢你! CreatAppDir = no正是我所需要的。 – joshuanapoli

+0

不客气! – TLama

3

您将需要使用引导程序/ chainer。例如,WiX toolset提供了一个概念,称为Bundle,可以将多个包合并成一个安装。

+0

WIX工具集看起来不错,但我无法找到将几个MSI文件捆绑到一个安装程序中的配方。弄清楚整个WIX模式对于这个项目来说有点太过分了。 – joshuanapoli

+0

我在这里回答了一个类似的问题,用于MSI和包的WiX代码:http://stackoverflow.com/questions/27521546/how-to-create-a-installer-that-installs-a-3rd-party- setup-exe-and-locates -cus/42102377#42102377 – TomEberhard