我有一個wix安裝程序,用於安裝不同版本的軟件。並行安裝相同的軟件(差異版本)是允許的。 wix產品代碼是'*',所以它一直是主要升級。Wix安裝程序有選擇地卸載以前的版本
現在,我需要選擇性地卸載以前版本的軟件。爲此,我已經在UpgradeVersion標籤中定義了版本範圍?
<Upgrade Id="ID">
<UpgradeVersion Minimum="0.0.0.0" Maximum="0.5.0.0" IncludeMinimum="yes" IncludeMaximum="no" Property="FORCEREMOVEOLDVERSION" />
<UpgradeVersion Minimum="0.6.0.0" Maximum="0.7.0.0" IncludeMinimum="yes" IncludeMaximum="yes" Property="SELECTIVELY_UNINSTALL" />
<UpgradeVersion Minimum="0.8.0.0" Maximum="1.5" IncludeMinimum="yes" IncludeMaximum="yes" Property="OLDERVERSIONDETECTED" />
</Upgrade>
這很好用。但是,當我必須有選擇地卸載範圍0.6 - 0.7時,我如何做一個單獨的操作,因爲只有一個RemoveExistingProducts標記。
<InstallExecuteSequence>
<RemoveExistingProducts Overridable="no" Before="InstallInitialize" />
</InstallExecuteSequence>
能否請你提出可行的方法,以便能夠檢查「SELECTIVELY_UNINSTALL」標誌,並刪除在此範圍內(0.6-0.7),同時自動刪除其他以前的版本?
謝謝。
我認爲問題在於那些已安裝的產品都具有相同的UpgradeCode,並且我相信Windows Installer會選擇其中一個已安裝的產品進行卸載,而不是全部。如果產品是並行安裝的並需要進行有選擇的升級,那麼他們都需要不同的UpgradeCodes。然後,您可以在任何升級安裝上使用升級元素來決定要替換哪些舊產品。 – PhilDW