2011-11-08 29 views
0

在我們公司,我們經常使用Installshield(最新版)創建MSI。 這些設置遵守一套規則,並將其命名計劃,讓他們與我們的部署系統和autobuilds等Installshield模板?

是否有消除通過所有的樣板東西去重複開銷的方式工作(設置公司元數據,基本的文件夾結構,一些事件,包括一些默認的助手文件等)爲每個設置?

回答

3

查看InstallShield Automation界面。我所做的是:

  1. 將我所有的組件抽象到WiX合併模塊(儘管可能是IS合併模塊)。
  2. 創建基礎的InstallShield項目(Common.ISM)
  3. 創建XML文件來描述我的特徵樹和產品配置
  4. 創建的構建自動化,以反映XML並調用自動化接口「散發出」我的安裝源。
  5. 在ISM中構建產品配置。

這給了我大量的代碼重用,但建立這種類型的系統並不是微不足道的。然而,如果您擁有合適的業務需求,它的規模會非常好,並且優勢非常大。

+0

絕對要用我們的自動創建功能檢查此問題。確實看起來不是很容易,但可以爲我們節省很多工作和麻煩。 –

+0

結帳http://blog.iswix.com/2010/06/improving-installshield-product.html我在這方面有很多經驗,可以幫助您根據您的需求設計您的系統。 –

0

有兩種方法可以做到這一點:

  1. XML格式保存的文件ISM(有此設置在項目設置)。然後在運行時,使用可寫入的新應用程序推送所需的值(這將使用DOM或其​​他...編輯XML文件)
  2. 使用InstallShield Automation接口。這可以使用VBScript來完成。您可以查看此鏈接:InstallShield Automation Interface
+0

由於它的DTD格式,對ISM的XML進行原始編輯是一件非常痛苦的事情。我個人首先使用IS自動化接口,但它只有約75%-80%的覆蓋範圍。我將項目保存爲二進制格式,然後在需要時使用Windows Installer查詢來處理表格數據。此外,我還使用C#NAnt/MSBuild任務,並將所有數據都通過XML驅動。例如,當我想創建一個新功能,而不是編寫一個VBScript來調用ISWiProject.AddFeature()時,我寫了一個帶有Feature Element的XML文件,然後用C#代碼使用LINQ查詢來讀取Feature Element並調用AddFeature –