0
假設我已經發布了帶有某種升級代碼的WiX刻錄軟件包(我不知道任何產品代碼)。假設我決定繼續前進,我想轉移到MSI包。問題是:當我安裝MSI軟件包時,如何在給定升級代碼的情況下刪除以前的Burn軟件包?我給了兩個相同的升級代碼,但MSI似乎不會在默認情況下卸載刻錄。如何在安裝MSI時卸載以前的刻錄軟件包
假設我已經發布了帶有某種升級代碼的WiX刻錄軟件包(我不知道任何產品代碼)。假設我決定繼續前進,我想轉移到MSI包。問題是:當我安裝MSI軟件包時,如何在給定升級代碼的情況下刪除以前的Burn軟件包?我給了兩個相同的升級代碼,但MSI似乎不會在默認情況下卸載刻錄。如何在安裝MSI時卸載以前的刻錄軟件包
你很可能需要寫在你的MSI自定義操作,通過所有的註冊表項下走去:
HKLM\Software\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall
和搜索註冊表值「BundleUpgradeCode」與靜態的UpgradeCode GUID值。當您找到它時,請閱讀條目「UninstallString」或「QuietUninstallString」的值。這是在安裝新MSI之前需要執行的命令才能卸載以前的軟件包。
警告:如果您卸載舊軟件包並且新的MSI安裝程序失敗,則此方法不支持回滾支持。你最終會得到一臺沒有安裝你的產品的機器。