卸载旧版本的应用程序

idm*_*idm 9 .net windows-installer wix

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

Dav*_*tin 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." />
Run Code Online (Sandbox Code Playgroud)

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


jbu*_*eau 7

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