2012-02-16 44 views
0

我已經成功地獲得了MSI安裝程序創建xml文件的概念證明,並且按照我希望的全新安裝更新了元素。 我有6個功能,如果要選擇要安裝的功能,我希望爲該功能創建一個節點,並根據屬性設置一個屬性。InstallShield2010 XML文件修改和卸載更改

如果我修改了安裝和移除先前安裝的功能,我希望XML節點創建爲它堅持我想設置我設置的屬性安裝基於相同的屬性將被更新(現在有不同的價值)。

是否可以利用InstallShield的現有功能來做到這一點?看來我可以,並避免編寫一個自定義操作來更新我的xml時刪除功能。似乎沒有關於isxmlcfg.dll和其中的自定義操作的很多文檔。

當我刪除功能的CA ISXmlUnInstall運行 - 但似乎所有的行動確實是刪除節點或離開它...

回答

2

你可能遇到的問題是,雖然你使用的屬性(比如registery,ini或xml)windows安裝程序本身並不會在其數據庫中持久化屬性。你必須這樣做你的自我。所以,如果你想修復,更改,升級或任何你想擁有相同的屬性數據,你不僅需要將它保存到某些東西(比如xml),而且你還必須擁有一個相應的AppSearch(XmlSearch)可以將其拉回到屬性中,以便在UI期間顯示值,或稍後寫回到XML。

另外考慮支持一種模式,在該模式下,只有當實體屬性尚未具有值時,纔會將其讀入臨時屬性並分配給實值屬性。這樣,有人可以進行無提示安裝(升級)並將該屬性作爲覆蓋傳遞給之前配置的內容。 (沒有通過搜索敲詐)

+0

對物業的優秀建議。有了這個,並決定讓我自己的自定義操作順序和條件運行卸載我工作。我曾希望避免製作一個CA,但我耗盡了時間。 – thekbb 2012-02-17 18:26:51