Dot-Net

解除安裝舊版本的應用程序

  • July 26, 2017

我有 WiX 生成的安裝程序,我希望它問:“您已經安裝了這個應用程序。要解除安裝它嗎?” 執行時。目前,如果之前安裝了另一個版本,它會再次安裝該應用程序並錯誤地解除安裝它。

以下將允許您執行升級,這將刪除以前的版本:

<?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 以滿足您的需求,這也將允許您執行升級,即使版本沒有更改。

引用自:https://stackoverflow.com/questions/8065126