WIX 升级后产品文件未删除

Product files not deleting after WIX upgrade

我们使用托管引导程序。

我们的捆绑包中有两种产品(我们称之为 BundleName)- ProductAProductB。 我们安装了这两个产品并且运行良好。

接下来我们将 BundleName 的版本从 1.0.0.0 更改为 2.0.0.0 并将 ProductA 的 MSI 版本从 1.0.0.0 更改为 2.0.0.0 .

正在进行升级。它成功完成,但在 BundleName 1.0.0.0 的日志中(应该卸载的先前版本的捆绑包)我们有:

Will not uninstall package: ProductA, found dependents: 1
Found dependent: {ffe63ad2-5155-4958-91cc-b0aac330cdb6}, name: BundleName
Will not uninstall package: ProductB, found dependents: 1
Found dependent: {ffe63ad2-5155-4958-91cc-b0aac330cdb6}, name: BundleName

尽管如此,它工作正常。

当我们删除升级后的 2.0.0.0 BundleName 时出现问题。捆绑包成功删除它并且日志清晰,但它不会删除 ProductA.

的任何文件和注册表项

我们在 2.0.0.0 日志中注意到的另一件事也有点奇怪:

Planned package: ProductA, state: Present, default requested: Present, ba requested: Present, execute: **MinorUpgrade**, rollback: None, cache: Yes, uncache: Yes, dependency: Register

我们更改了第一个版本号,所以应该是 MajorUpgrade 而不是 MinorUpgrade

这是我们的配置:

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

<Upgrade Id="$(var.UpgradeCode)" />
<MajorUpgrade DowngradeErrorMessage="A newer version of $(var.ProductName) is already installed." 
              Schedule="afterInstallInitialize"
              AllowSameVersionUpgrades="yes" />
...

有人可以解释一下我们错过了什么吗?

找到问题了。 Product 中的 ProductCode 元素已修复,而不是 *

How To: Implement a Major Upgrade In Your Installer

How To: Generate a GUID