WIX 升级后产品文件未删除
Product files not deleting after WIX upgrade
我们使用托管引导程序。
我们的捆绑包中有两种产品(我们称之为 BundleName
)- ProductA
和 ProductB
。
我们安装了这两个产品并且运行良好。
接下来我们将 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
元素已修复,而不是 *
。
我们使用托管引导程序。
我们的捆绑包中有两种产品(我们称之为 BundleName
)- ProductA
和 ProductB
。
我们安装了这两个产品并且运行良好。
接下来我们将 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
元素已修复,而不是 *
。