我们使用托管引导程序。
我们的捆绑包中有两种产品(我们称之为BundleName
) -ProductA
和ProductB
. 我们安装了这两种产品,它工作正常。
接下来我们更改 from to 的版本和from toBundleName
的1.0.0.0
MSI2.0.0.0
版本。ProductA
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" />
...
有人可以解释一下我们错过了什么吗?