2011-02-08 143 views
0

我正在使用InstallShield 2010創建我的產品的修補程序。有很多更改,因此我使用修補程序設計視圖來創建MSP修補程序,它與我原始的產品發行版MSI和當前的MSI不同。我的安裝程序使用XML文件更改InstallShield功能在安裝期間編寫XML文件值。一些寫入的值在安裝過程中通過自定義對話框收集。我的問題是,在應用修補程序時,這些值爲NULL,因爲在MSP修補程序安裝期間沒有顯示用戶對話框。會發生什麼是因爲這些值不是從用戶輸入填充的,MSP會將空白值放入XML中,從而實質上刪除用戶在初始安裝期間指定的值。我可以添加對話框到補丁中嗎,這樣我可以在補丁安裝期間從用戶重新收集必要的值?Installshield使用用戶輸入值修改XML文件更改

我一直在想的一件事是編寫一個boot strapper批處理腳本,並通過屬性PROPERTY =「VALUE」中的msiexec.exe調用傳遞屬性值,但我希望找到一些替代方法。

回答

1

通常,您應該有搜索將當前值讀入屬性。您可以使用InstallShield中的XML系統搜索支持來完成此操作,或者您可能需要編寫自定義操作。 (XML系統搜索支持不處理名稱空間以及XML文件更改)。

一旦將此更改構建到升級的安裝程序和修補程序中,您的修補程序應該在運行XML更改之前類似地運行這些搜索。在完整的用戶界面維護方案中,這可能會顯示爲已填充的默認值,但也要確保這一點。

+0

啊沒有想到重新搜索我的XML文件。這是個好主意。我會給你一個鏡頭,謝謝! – 2011-02-08 15:12:35