2013-03-31 170 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