2012-01-15 51 views
1

我有一個代碼在MFC中調用MsiInstallProduct(installerFullPath, commandLine);windows MSI可以安裝多個軟件包嗎?

是否可以同時安裝2個MSI產品? 只要它們都是獨立的。

是可以調用Windows函數並給我所有的MSI組件,它會安裝逐一?

回答

4

Windows安裝程序不允許在同一time.You安裝多個MSI軟件包需要觸發裝置此起彼伏,等待第一個你啓動第二個前完成。在一次調用中安裝它們的唯一選擇是創建另一個MSI包,一個是主包,將兩個包作爲鏈接包添加。

+0

和我怎麼做鏈接的程序包?我在哪裏可以找到更多關於這方面的信息 – eladyanai 2012-01-15 11:57:49

4

在Windows Installer 4.5之前,Bogdan的回答是正確的。但是,由於使用Windows Installer 4.5和更高版本,您可以執行Multiple-Package Installation。通過調用MsiBeginTransaction,API的某些組合(如MsiInstallProduct,MsiApplyPatchMsiConfigureProduct),然後最終MsiEndTransaction來完成此操作。

技術上這些仍然不完全安裝在同一時間(它會調用多個功能),但是這使得他們一個交易的一部分。如果所有參與的軟件包都被正確創作,它們將全部被安裝,修補或配置(修改或移除),或全部回滾到它們的開始狀態。

1

邁克爾提到的多包的安裝是完全通過鏈接程序包使用的支持,並且他也提到了這一點至少需要有Windows Installer 4.5在目標計算機上。

要創建在其中添加作爲鏈接,你可以使用不同的設置創作工具,免費的和商業,這取決於你有可利用的時間在兩個那些MSI軟件包。下面是工具列表: http://en.wikipedia.org/wiki/List_of_installation_software

+0

他們會同時運行嗎? – eladyanai 2012-01-24 10:13:44

+0

安裝UI將按順序運行,但基於多包安裝標準,系統上的更改將在單個事務中提交。所以當主包安裝它的文件時,即使它們的UI序列已經完成,它也會從所有鏈接包中安裝文件。 – 2012-01-25 08:20:01

相關問題