2010-10-01 77 views
1

我在InstallShield中有BasicMsi項目。我希望能夠更新此應用程序,但是我找不到InstallShield變量,該變量返回已安裝的ProductVersion的數量,我知道我可以通過使用升級節點並定義一組規則來手動制定此版本,但是現在我正在尋找最簡單的解決方案。我想在代碼中使用這個版本號來提供一些基於這個值的工具。如何在InstallShield更新期間獲得以前安裝的ProductVersion

我希望能夠升級到當前版本,不僅從以前的版本(例如3.0.2),而且從早期的版本(2.1.0,1.0.0等)。

回答

2

如果我們正在談論重大升級,升級表中定義的ActionProperty在FindRelatedProducts執行後將具有ProductCode。還有由RemoveExistingProducts設置的UPGRADINGPRODUCTCODE。

我知道沒有其他內置機制來解決升級產品的ProductVersion。您將必須編寫一個自定義操作來根據您的ProductCode/UpgradeCode查詢MSI API以獲取此信息。

另一種方法是在第一次安裝期間編寫註冊表值(或者甚至可以使用已存儲在「添加/刪除程序卸載鍵」中的內容),然後使用AppSearch/Reglocator組合將其提取到屬性中。

+0

是的,我使用重大升級。感謝你的回答,我擔心我必須這樣做。 – Darqer 2010-10-01 15:15:05

相關問題