我正在使用WiX创建可升级的安装程序,需要在安装新版本之前完全删除现有程序。我有文件升级并添加新版本应该是,但我在添加/删除程序屏幕中留下了2个程序实例。下面是我试图删除所有内容的示例。
<Product Id="064e9bca-dcf5-412d-9a8f-dafec3bd3406" Name="testInstall" Language="1033" Version="1.0.14" Manufacturer="testInstall" UpgradeCode="5dd5747f-c598-4133-8c7d-252ae3dee8a5">
<Package InstallerVersion="301" InstallPrivileges="elevated" InstallScope="perMachine" Compressed="yes" />
<Upgrade Id="5dd5747f-c598-4133-8c7d-252ae3dee8a5">
<UpgradeVersion Minimum="1.0.0"
IncludeMinimum="yes"
Maximum="1.0.13"
OnlyDetect="no"
Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
可以提供任何可以提供的帮助。
答案 0 :(得分:5)
每次要创建新的更新包时,请同时更改ProductVersion和ProductGUI:
<?define ProductVersion="1.0.76"?>
<?define ProductGUI="945C22A0-BB37-4F7D-9B28-2F02491A0698"?>
<Upgrade Id="b14563a6-db4f-451c-8b9d-03e480687290">
<UpgradeVersion OnlyDetect='yes' Property='NEWERVERSIONDETECTED' Minimum='$(var.ProductVersion)' IncludeMinimum='no' />
<UpgradeVersion Minimum="1.0.0" IncludeMinimum="yes" Maximum="$(var.ProductVersion)" Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>
...
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallValidate" />
...
</InstallExecuteSequence>
注意:当然,请使用您自己的GUID进行升级/ ID。