2016-04-19 78 views
1

我使用WiX的捆綁安裝微星的鏈條,當我試圖升級舊版本安裝最新版本不卸載如何卸載以前的版本,並與維克斯捆綁

請幫我做以下任一情形的

  1. 如何卸載以前版本之前安裝最新版本的
  2. 隨時升級到最新版本,在我的情況下,它可能是主要版本或次要版本或補丁發佈
+0

如果您在捆綁的msi中實施windows installer主要升級,則在安裝新版本之前不必卸載它們。另外值得注意的是,wix引導程序將正確地升級僅在bundle版本的第四部分中有所不同的版本。要使wix包正常升級,它們的版本必須不同,並且它們必須共享相同的UpgradeCode –

回答

2

還有更多,然後只是卸載。首先讓我們看看你的版本。捆綁包本身有版本,每個msis都有自己的版本。我希望當有升級時間時,您必須升級整個軟件包而不單獨檢查每個軟件包,這可能會使其更容易一些。所以現在,每個MSI應該有Product > Upgrade屬性集並且有Upgrade節點。值應該是相同的。包應該有屬性UpgradeCode。這應該足以讓您卸載以前的版本並安裝新的版本。

現在,如果您想在UI中顯示某些內容,則可以轉到自舉程序並訂閱各種Detect事件。有一些與升級有關。

下面是支持更新的MSI:

<Product Id="*" Name="$(var.ProductName)" Language="1033" Version="1.0.0.5" Manufacturer="$(var.Manufacturer)" Upgrade="GUID_HERE"> 
<Package InstallerVersion="450" Compressed="yes" InstallScope="perMachine" /> 
<Upgrade Id="SAME_GUID_HERE"/> 

和刻錄:

<Bundle Name="$(var.ProductName)" 
    Version="1.0.0.5" 
    Manufacturer="$(var.Manufacturer)" 
    UpgradeCode="ANOTHER_GUID" 

所以一旦你裏面的GUID安裝軟件包,下一版本將檢測(使用GUID),該產品安裝已經並將進行升級。

+0

謝謝您,我使用捆綁軟件以及msi的版本。不是一個問題,我可以改變我的代碼,只檢查捆綁版本。我不想在用戶界面上顯示任何內容,用戶只需點擊安裝,即可通過刪除舊版本來升級包。你可以提供我的MSI的示例代碼和燃燒? –

+0

查看我的更新, –

+0

謝謝安德烈,我可以檢查並讓你知道你能澄清一件事,我需要在msi中添加主要升級元素嗎? –