我的产品有两个 SKU。两者都使用 Burn 作为引导程序。我以 Pro 版本将升级和替换 Lite 版本的方式编写了 MSI。但是,一旦我将它们包在烧录中,Pro 版本会正确升级 MSI,但 Lite 安装条目仍保留在 ARP 列表中。它们都是相同的版本号,我已经设置:
<RelatedBundle Id="LITE_UPGRADE_CODE" Action="Upgrade"/>
在 Pro 捆绑包中。
有什么方法可以删除 Lite 条目吗?
是的,但您需要做以下两件事之一:
(简单):使 Pro 捆绑包具有比 Lite 捆绑包更高的版本 - 只有在版本更高时才会启动升级。
(更难):使用自定义 BA 来计划与 Lite 相关的捆绑包Absent
- 您可以将 Lite 捆绑包更改为RelatedBundle/@Action
,Detect
并且当 Lite 捆绑包出现时OnPlanRelatedBundle()
将请求的状态更改为Absent
。Pro 捆绑包将在应用阶段结束时删除 Lite 捆绑包。
自定义 BA 可能是解决问题的更正确方法,但如果您尚未投资自定义 BA,则工作量会更大。
祝你好运!