卸载旧版本的应用程序

时间:2011-11-09 12:36:46

标签: .net wix windows-installer

我有WiX生成的安装程序,我想让它问:“你已经安装了这个应用程序。你要卸载吗?”什么时候跑。目前,如果以前安装了其他版本,它会再次安装该应用并将其卸载错误。

2 个答案:

答案 0 :(得分:13)

下面将允许您执行升级,删除以前的版本:

<?define Version = "!(bind.fileVersion.<YOUR-FILE-HERE>)" ?>
<?define UpgradeCode = "<YOUR-GUID-HERE>" ?>

<Upgrade Id="$(var.UpgradeCode)">
  <UpgradeVersion Minimum="$(var.Version)" IncludeMinimum="no" OnlyDetect="yes" Property="NEWERVERSIONDETECTED" />
  <UpgradeVersion Minimum="0.0.0" Maximum="$(var.Version)" IncludeMinimum="yes" IncludeMaximum="yes" Property="OLDERVERSIONBEINGUPGRADED" />
</Upgrade>

<InstallExecuteSequence>
  <RemoveExistingProducts After="InstallInitialize" />
  <Custom Action="NewerVersion" After="FindRelatedProducts">NEWERVERSIONDETECTED</Custom>
</InstallExecuteSequence>

<CustomAction Id="NewerVersion" Error="A later version of [ProductName] is already installed." />

您需要定义UpgradeCode和版本以满足您的需求,即使版本未更改,您也可以进行升级。

答案 1 :(得分:7)

如果您使用WiX 3.5,则可以使用MajorUpgrade元素。