2012-10-23 48 views
4

我們有三個部分產品:建立一個MSI

  • 應用程序文件(EXE和DLL文件)
  • 幫助文件
  • SSRS報告

所有這三個事情與使用WIX構建的相同安裝程序一起安裝。在我們公司,每個組件都是由不同的團隊開發的,並有不同的截止日期。我們希望將我們的MSI分成三部分,這樣當一部分變得穩定時,其安裝程序部分也很穩定,並且在其他部分更新時不會從頭開始重新構建。

我看過合併模塊和CAB文件,但我認爲這是錯誤的方向。 WIX工具集中有什麼可以幫助我實現自己的目標?

(我已閱讀問題Building MSI Installer and Separaete Installation Files但相信這個問題是有點不同。)

感謝您的幫助。

回答

3

WiX庫(*.wixlib)似乎是在您的案例中分發組件的最佳方法。

我會組織這個過程是這樣的:

  • 每隊有一個單獨的WiX的安裝工程(安裝圖書館項目),其編譯成*.wixlib文件,而不是MSI(或MSM)封裝
  • 各作爲組分顯影項目放出,並且輸出被共享到其他隊
  • 集成構建收集所有wixlib庫和鏈接(light.exe)它們放在一起成一個單一的MSI軟件包

因此,您將始終擁有包含最新構件組件的最終安裝包,這就是持續集成的全部內容。

據我所知,你不會單獨分發組件,對於最終用戶來說,它仍然是一個堅實的安裝包。因此,合併模塊可能是一個開銷。我懷疑(但不確定)light.exe在鏈接庫時會執行一些額外的驗證,與合併工具相比。

+0

謝謝,這有幫助。 – Brett

2

那麼,合併模塊是一個解決方案。您可以有兩個包含幫助文件和SSRS報告的合併模塊,並將它們添加到僅包含應用程序文件的主包中。如果兩個合併模塊中沒有任何更改,這可以增加構建時間,但是對於主包更改仍然需要很長的構建時間。

另一種選擇是爲每個組件創建單獨的包,並使用Burn將它們捆綁到一個包中。我會建議使用合併模塊,其更清潔和易於管理。

+0

感謝您的幫助。我也會調查燒傷。 – Brett