我们最近为我们的安装程序切换到了自定义引导程序。这允许用户从可能要安装的模块列表中进行选择(每个模块都作为单独的 msi)。我们现在正在进行第一次升级并遇到了问题。Burn 可以正确升级 msi,但无法正确处理 ARP 中列出的引导程序。它最后尝试卸载引导程序,但由于已经安装了更高版本的引导程序而失败。
根据这篇文章https://support.firegiant.com/entries/24024208-Bundle-chain-execution-order-升级的执行顺序应该首先卸载相关的捆绑包:
“在计划卸载时,Burn 引擎会首先计划所有相关的包。因此,相关的包总是在删除链接的包之前被删除。
然而,这不是我们看到的行为。最后卸载了相关的捆绑包:
[11C4:0868][2015-02-26T10:09:26]i102: Detected related bundle: {9e3abad2-c78b-48ec-a523-c5c4de4fe3f1}, type: Upgrade, scope: PerMachine, version: 7.5.0.0, operation: MajorUpgrade
...
[11C4:0868][2015-02-26T10:09:38]i207: Planned related bundle: {9e3abad2-c78b-48ec-a523-c5c4de4fe3f1}, type: Upgrade, default requested: Absent, ba requested: Absent, execute: Uninstall, rollback: Install, dependency: None
[11C4:0868][2015-02-26T10:09:38]i299: Plan complete, result: 0x0
...
[1224:0E20][2015-02-26T10:23:26]i301: Applying execute package: {9e3abad2-c78b-48ec-a523-c5c4de4fe3f1}, action: Uninstall, path: C:\ProgramData\Package Cache\{9e3abad2-c78b-48ec-a523-c5c4de4fe3f1}\FlexSimInstaller.exe, arguments: '"C:\ProgramData\Package Cache\{9e3abad2-c78b-48ec-a523-c5c4de4fe3f1}\FlexSimInstaller.exe" -uninstall -quiet -burn.related.upgrade -burn.ancestors={36ff969e-da98-4c27-9dde-20e090c0812f}'
[11C4:0868][2015-02-26T10:23:35]i319: Applied execute package: {9e3abad2-c78b-48ec-a523-c5c4de4fe3f1}, result: 0x0, restart: None
[11C4:0868][2015-02-26T10:23:35]i399: Apply complete, result: 0x0, restart: None, ba requested restart: No
[11C4:0868][2015-02-26T10:23:38]i500: Shutting down, exit code: 0x0
我们知道无法更改订单,那么如何让升级生效?