2011-10-24 27 views
2

我創建了我的WIX安裝選項,進行升級以便刪除以前的DLL 但是,當我進入控制面板並轉至 添加/刪除程序部分時,以前的版本仍然存在。WIX程序仍然存在於控制面板的添加/刪除部分

如何從此添加/刪除部分刪除此前一個圖標?

.....

針對以下 對不起,我仍然無法得到這個工作,以前的版本仍然在添加顯示評論/刪除,當我升級程序部分, 下面是一些代碼

我確實有編號開始爲「*」,但現在我只需要改變產品ID,當我讓我的未來建設

<Upgrade Id="$(var.UpgradeCode)"> 
    <UpgradeVersion Minimum="$(var.ProductVersion)" OnlyDetect="yes" Property="NEWERVERSIONDETECTED"/> 
    <UpgradeVersion Minimum="1.0.0" 
        IncludeMinimum="yes" 
        OnlyDetect="no" 
        Maximum="$(var.ProductVersion)" 
        IncludeMaximum="no" 
        Property="PREVIOUSVERSIONSINSTALLED" /> 
</Upgrade> 
+1

如果您安裝了兩個相同的.msi版本,則沒有將UpgradeCode設置爲正確。在這裏閱讀更多。 http://blogs.msdn.com/b/johnls/archive/2006/11/13/how-to-upgrade-software-with-a-windows-installer-package.aspx –

+0

我同意Morten,但我認爲您在產品ID和升級ID之間感到困惑。升級ID將在您的產品元素中設置。這是您檢測以前版本時需要使用的一個。 –

回答

0

升級ID必須是在S您想要升級的版本之間的差異。如果你想進行一次重大升級,爲您刪除以前的安裝,然後安裝新版本,必須更改屬性是產品ID

一個「*」可使由維克斯

生成一個新的GUID你想這樣的事情:

<!--Product --> 
<Product Id="*" Name="$(var.Product.Name)" Language="$(var.Product.Lang)" Version="$(var.Product.Version)" Manufacturer="$(var.Product.Manufacturer)" UpgradeCode="{Replace me with a constant Upgrade Guid}"> 
<Package InstallerVersion="$(var.Package.InstallerVersion)" Compressed="yes" Platform="$(var.Platform)" /> 


    <!--Condition Messages--> 
    <Condition Message="A newer version of $(var.Product.Name) is already installed. Exiting installation."> 
     <![CDATA[Installed OR NOT NEWER_VERSION_FOUND]]> 
    </Condition> 

<!-- Upgrade Table --> 
<Upgrade Id="{Replace me with a constant Upgrade Guid}"> 

    <UpgradeVersion 
    Property="OLD_VERSION_FOUND" 
    Minimum="0.0.0.0" 
    Maximum="$(var.Product.Version)" 
    IncludeMinimum="yes" 
    IncludeMaximum="no" 
    OnlyDetect="no" 
    IgnoreRemoveFailure="yes" 
    MigrateFeatures="yes" 
    Language="1033" /> 

    <UpgradeVersion 
    Property="NEWER_VERSION_FOUND" 
    Minimum="$(var.Product.Version)" 
    IncludeMinimum="no" 
    OnlyDetect="yes" 
    Language="1033" /> 

</Upgrade> 

<!--Removes the old version and then installs the new version--> 
<InstallExecuteSequence> 
    <RemoveExistingProducts After="InstallInitialize"></RemoveExistingProducts> 
    <InstallExecute After="RemoveExistingProducts"></InstallExecute> 
</InstallExecuteSequence> 

你還應該注意,你不能切換每個用戶和每臺機器之間安裝版本之間。

相關問題