2014-06-20 87 views
2

我們有一個超過100件'產品'的產品,其中大部分是可選的'插件'。我們希望非程序員能夠根據每個客戶/銷售基礎製作「定製」安裝程序。我們的理想只是一個單一的可執行文件/ msi文件夾結構,從中可以刪除文件/文件夾,然後在運行安裝程序時根本不會提供與刪除位相對應的功能。如何在Windows下創建可組合應用程序的安裝程序?

一個單獨但類似的問題是,這些插件的開發人員不是安裝專家,我們不希望編輯共享安裝源以從我們的構建集中添加/刪除一個。我們一直在使用Advanced Installer的「同步文件夾」功能,但我們希望爲每個插件單獨選擇一個功能。

是否有可以支持這種(或類似)行爲的安裝程序工具鏈?

如果有人有提示如何使用上述工具實際實現它?

回答

2

我在上一份工作中創建了這樣一個工具堆棧。我們在典型的安裝程序中爲數十個服務系列,數百個功能,數千個合併模塊和數以萬計的文件進行了產品線開發。

每個合併模塊都是使用IsWiX編寫的,並使用WiX進行編譯。然後,我們使用WiX XML作爲構建自動化系統的輸入來生成InstallShield安裝程序。一個服務族可以有一個XML文件來描述它是功能樹的一部分,它將全部發送到一個空的InstallShield項目中。

最後,產品XML文件將描述INSTALLDIR,UpgradeCode和其他元素以及要使用哪些功能。我們從這個通用的基本代碼中建立了幾十個和幾十個安裝程序。

這將需要幾天來解釋一切,但這給你的想法。對於更簡單的環境,您可以創建UI來生成WiX代碼,然後將其編譯爲MSI。

但我不知道我會把這個給非程序員。創建安裝程序是編程。

+0

感謝您的回答,到目前爲止,WiX似乎可能成爲任何解決方案的一部分,因爲單個作品的XML片段可以流式傳輸/組成一個安裝程序項目。另外,感謝IsWiX參考資料,我還沒有找到該編輯。 當然,使UI呈現項目/「功能」列表可供選擇,但我不能同意選擇項目是編程。我只是希望儘量減少編程投入來創建(並維護)該菜單。 – SensorSmith

+0

我們使用了合併模塊,因爲最初合併模塊是使用Orca和Visual Studio部署項目2003創建的,然後是InstallShield 9 - 2011,然後是WiX 3.5 - 3.7。在那段時間裏,他們使用InstallShield 9 - 2011進行消費。如果你只停留在一個WiX世界,你可以看片段,庫和二進制庫。如果你想使用IsWiX,你必須留在合併模塊中,因爲這是文件和文件夾設計器編碼支持的唯一模式/場景。 (我的前任公司是根據自己的需求來支付賬單的。) –

0

沒有工具可以在運行時在MSI軟件包中創建功能,至少不需要基於MSI的工具。這會使安裝程序邏輯過於複雜,因爲您需要非常複雜的自定義操作來讀取安裝程序旁邊的文件夾內容,然後在以下MSI表中生成條目:文件,目錄,組件,功能,FeatureComponents。然後互連所有這一切。

這不是一件容易做到的事情,而且很容易出錯的東西是由某種東西所嘗試的,但如何在構建MSI軟件包方面沒有豐富的經驗。

您是否考慮過/嘗試過任何非MSI軟件包構建器?

+0

我並不打算暗示它必須是MSI解決方案。我一直在研究NSIS和InnoSetup的功能,但沒有找到對這種功能的參考。任何針對這些或其他產品的指針? – SensorSmith

相關問題