我们使用托管引导程序。
我们的捆绑包中有两种产品(让我们称之为BundleName
) - ProductA
和ProductB
。
我们安装这两种产品并且工作正常。
接下来,我们将BundleName
的版本从1.0.0.0
更改为2.0.0.0
,将ProductA
的MSI版本从1.0.0.0
更改为2.0.0.0
。< / p>
执行升级。它成功完成但在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" />
...
有人可以解释我们错过了什么吗?
答案 0 :(得分:1)
发现问题。
let throttledProjectUpdate = _.throttle((position) => {
InteractionManager.runAfterInteractions(() =>
dispatch(ProjectState.projectNewLongLat(position.coords.longitude, position.coords.latitude))
);
}, 5000)
let watchId = navigator.geolocation.watchPosition((position) => {
dispatch(sensorGeoNewPositionAction(position))
throttledProjectUpdate(position)
});
元素中的ProductCode
已修复,而不是Product
。