2012-03-14 69 views
3

如果我遺漏了任何重要細節,我想提前致歉。Wix'Advanced'安裝不會卸載以前的版本

我正在嘗試執行升級,在安裝新軟件之前應刪除先前版本的軟件(以及所有組件)。

我會盡量避免讓你厭煩你的細節,並說如果你做'典型'安裝,一切都按計劃進行。如果您選擇進行高級安裝(爲所有用戶指定安裝,安裝位置等),那麼它似乎完全跳過了「卸載先前版本」的步驟。

到目前爲止,我已經做了以下內容:

-Edited我UpgradeVersion標籤相匹配的-Verified的「OLDVERSIONBEINGUPGRADED」屬性正確設定

另一計算器問題

意見 - 驗證升級代碼/ id是否相同,版本號是順序的(從1.0.8升級到1.0.10) - 畢竟,「典型」安裝正常工作!

-Followed這裏給出的建議是:WiX-- always overwrite the previous version,並遵循這樣的:http://wix.sourceforge.net/manual-wix3/major_upgrade.htm

-Tried通過手動調用MSIEXEC來卸載以前版本通過它的產品ID(這失敗了,因爲我們已經安裝的東西來實現破解 - 有沒有更好的方式來安排此)

我的產品/升級部分看起來是這樣的:

<Product Id="GUID1" UpgradeCode="GUID2" Version="1.0.10.0"> 
    <Package Compressed="yes" InstallerVersion="200"/> 
    <MajorUpgrade Schedule="afterInstallInitialize" 
     DowngradeErrorMessage="Another version of [ProductName] is already installed."/> 
    <Upgrade Id="GUID2"> 
     <UpgradeVersion Minimum="1.0.10" OnlyDetect="yes" 
      Property="NEWERVERSIONDETECTED" /> 
     <UpgradeVersion Maximum="1.0.10" IncludeMaximum="no" 
      Property="PREVIOUSVERSIONINSTALLED" /> 
    </Upgrade> 

我是一個新手維克斯,所以我可能忽略了重要的d?同時描述我的問題。如果我忽略了一些重要的東西,請告訴我。

預先感謝您提供的任何輸入。

回答

2

這聽起來像您遇到了與我一樣的限制,請參閱this question。您無法在升級中更改安裝範圍(「每個用戶」或「每臺機器」)。

在Windows安裝程序中沒有簡單的解決方法。您只能創建一個單獨的引導程序exe,它可以卸載以前的版本,然後開始安裝新版本。

+0

感謝您的輸入! 在測試中,我們發現如果每次都進行相同的「每臺計算機」安裝,我們會得到同樣的問題。 這仍然是相同的限制? 「每臺計算機」的選擇會阻止升級還是範圍更改?您是否最終使用(或測試)該頁面上建議的黑客? – user1267756 2012-03-14 15:28:42

+0

僅供參考 - 我們的解決方法是禁止進行高級安裝;它總是按用戶安裝。如果我們有在其他環境中有用的功能或功能,我們將來可能需要在將來進行調整。 – user1267756 2012-03-14 17:54:25

+0

@ user1267756:這是我的情況的範圍變化。如果即使示波器沒有改變,您仍然看到問題,那麼這可能是一個不同的問題。不,我從來沒有測試過這個黑客。 – 2012-03-14 19:43:22

相關問題