【发布时间】:2011-12-25 07:02:30
【问题描述】:
我有 WiX 生成的安装程序,我希望它问:“您已经安装了这个应用程序。要卸载它吗?”运行时。目前它会再次安装应用程序,如果之前安装了另一个版本,则会错误地卸载它。
【问题讨论】:
标签: .net wix windows-installer
我有 WiX 生成的安装程序,我希望它问:“您已经安装了这个应用程序。要卸载它吗?”运行时。目前它会再次安装应用程序,如果之前安装了另一个版本,则会错误地卸载它。
【问题讨论】:
标签: .net wix windows-installer
以下将允许您执行升级,从而删除以前的版本:
<?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 和 Version 以满足您的需要,这也将允许您执行升级,即使版本没有更改。
【讨论】:
如果您使用 WiX 3.5,您可以使用 MajorUpgrade 元素。
【讨论】: