2016-04-26 94 views
0

我們使用WIX工具集來自動執行長時間的安裝過程。其中很大一部分是根據客戶想要安裝的產品版本安裝大量先決條件。WIX工具集 - 根據用戶輸入安裝先決條件

例如有一個過濾器包(.msi文件)涉及安裝,只需要安裝某種類型的產品,因此不可能簡單地將其鏈接成一個包,因爲我們無法預先知道客戶選擇哪個版本。

有什麼辦法來解決這個問題,而不必創建4個不同的安裝程序或安裝無關版本的所有先決條件?

在此先感謝。

回答

1

實現這一點最簡單和最易維護(IMO)的方法是使用一個引導程序燒傷,並有一個獨立的MSI安裝的用戶可以安裝該產品的每個版本。

燒傷boostrapper也將包含所有需要的必備軟件包,但只安裝由用戶選擇安裝的特定版本所需的那些。

你說你不能包括在鏈中的過濾器包,因爲你不知道,直到運行時是否將顧客需要但那是引導程序的整點。您的引導程序應該在運行時收集信息並相應地設置變量。在MsiPackage元素上使用InstallCondition,可以確定是否需要安裝msi。

引導程序進程是運行檢測,做UI,計劃,執行。在計劃過程中,您將確定在安裝過程中將運行和安裝哪些軟件包。引導程序應用程序有權設置任何程序包進行安裝或卸載,覆蓋引擎決定執行的任何操作。

您還可以將所有msi版本的東西包含在一個MSI中,並通過功能組來控制它,這樣可以讓您在產品的所有版本中使用一個MSI,但這可能會使得多個「重複」組件變得臃腫和複雜從你產品的不同版本開始,所以我認爲這會在以後變成可維護性。

0

您可以添加一個自定義對話框,其中有複選框,用戶可以選擇要安裝的內容。

這些複選框變量設置爲0或1。您可以在installcondition使用這些變量。

我相信你甚至可以有條件地顯示覆選框(說2關閉5已經安裝,你不想讓用戶選擇安裝已經安裝的2)