這裏有很多很好的答案。我會給你兩個。
1)我個人會做什麼:(跳過熱量和封裝爲合併模塊)
創建一個構建提取駕駛室,並構建WiX的 作者的IsWix合併模塊項目,包括所有提取的文件。 簽入並在需要時進行構建。現在,您的.MSM坐在您構建檔案區域的架子上。
2)我懷疑什麼,你會更喜歡(用熱和封裝爲二進制維克斯庫)
創建一個構建提取物駕駛室,跑熱,並建立維克斯 籤並在需要時建立。您在構建檔案區域的書架上放置了一個.wixlib/.wixobj。
我有工具(IsWiX),使#1成爲一塊蛋糕。是的,您每次接受新的CAB時都需要手動更新MSM WXS定義,但我認爲這樣做並不重要。這更可靠。由於編譯器/鏈接器必須解壓縮,爲您重新包裝內容,因此MSM會稍微減慢MSI的創建速度。
選項2假定熱永遠不會讓你失敗。這讓我害怕。要想在前期創造所有的管道並且在理論上更少地維持一段時間...要想讓熱火永遠不會讓你失敗,那就更難了。 (我不會這樣認爲)。因爲二進制wixlib處於編譯器/鏈接器的最佳格式,所以.MSI的創建速度會更快一些。
選項1具有與其他工具(如InstallShield)兼容的額外好處。
通過將MSM和MSI創建分離爲2個版本,您可以選擇何時構建每個版本並將它們鏈接在一起。這對於大型項目來說非常有價值。但是,在許多情況下,優化增加了不必要的複雜性。如果我正在編寫一個小型業務應用程序(例如,在應用程序和JRE之間總共需要100MB),我可能不會打擾。我可能只是在幾分鐘內將所有東西作爲一個整體構建在具有SSD存儲的快速虛擬機上。
感謝它是時間不多,它更多的repeatet提取和重新打包,我想避免。 (所以我想避免創建合併模塊的手動步驟)。但我想我可以將兩者結合起來?使用熱量創建一個marge模塊來填充細節...? (我不知道關於WiX :)。無論如何,當它變成eliglbe時將接受你的答案 – eckes
當.CAB內容改變時,合併模塊的手動步驟將更新它的清單。我不認爲這是應該自動化的一些艱苦的步驟,我認爲這是分析和發展。 IsWiX減少了開發過程中的摩擦。 –