Wix 主要升级时无需卸载

Ymi*_*mir 0 wix

这是我的代码:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
  <?define ProductName = "MyApp"?>
  <?define ProductCode = "GUID_NO1"?>
  <?define UpgradeCode = "GUID_NO2"?>
  <?define ProductVersion = "1.0.0"?>

  <Product Id="$(var.ProductCode)"
           Name="$(var.ProductName)"
           Language="1033" 
           Version="$(var.ProductVersion)"
           Manufacturer="Me"
           UpgradeCode="$(var.UpgradeCode)">

    <Package Description="My desc" 
             InstallerVersion="300"
             Compressed="yes"
             InstallScope="perMachine" />

<MajorUpgrade DowngradeErrorMessage="A newer version is already installed." />
    ...
Run Code Online (Sandbox Code Playgroud)

我构建,安装,一切顺利。所以我替换

  <?define ProductCode = "GUID_NO3"?>
  <?define UpgradeCode = "GUID_NO4"?>
  <?define ProductVersion = "1.0.1"?>
Run Code Online (Sandbox Code Playgroud)

我构建、安装并在程序/功能中找到了 2 个 MyApp,一个在 1.0.0 版中,一个在 1.0.1 版中。当然,我需要删除 1.0.0。

为 ProductCode保留相同的 guid将不起作用。

我正在使用 Wix 3.8。

Chr*_*int 5

确保 UpgradeCode 保持不变并将 Id 更改为 *。

<Product Id="*" Name="Stub" Language="1033" Version="$(var.Version)" 
    Manufacturer="" UpgradeCode="FAFD7276-68F3-43AF-BEBF-8F175499A243">
Run Code Online (Sandbox Code Playgroud)