首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止WiX自定义引导程序在升级时卸载缺少的软件包

如何防止WiX自定义引导程序在升级时卸载缺少的软件包
EN

Stack Overflow用户
提问于 2019-10-16 11:17:04
回答 1查看 402关注 0票数 1

我有一个WiX自定义引导程序,它安装了几个msi包,比如说A、B、C、D和E包。现在我想分发一个新的Bootstrapper,它可以升级软件包A和B,但是不再安装软件包C、D和E。问题是我想把软件包C、D和E留在机器上(如果已经安装了)。

升级时,Bootstrapper将安装/升级包A和B,然后卸载旧的Bootstrapper进行清理。这将卸载软件包C,D和E,因为它们不再是产品的一部分。

问:如何防止C、D和E软件包被卸载?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-04-01 08:06:05

@Shique:如果包(C、D和E)不再包含在Bootstrapper中,您将永远不会在这些包上点击OnPlanPackageBegin,因此不能将状态属性设置为RequestState.None。

这不是对问题的直接回答,而是一种从引导程序中删除软件包的方法,您不再想要分发这些软件包,而不需要卸载软件包。

我们在最初的Bootstrapper中创建了包含包C、D和E的第二个Bootstrapper,现在只包含包A和B,我们将第二个Bootstrapper添加为一个带有永久属性的ExePackage。当运行原始的Bootstrapper时,它将升级包A和B,运行第二个Bootstrapper,这将增加包C、D和E的引用计数。当Bootstrapper进行清理时,它当然会离开包A和B,但也会因为第二个Bootstrapper的引用而离开包C、D和E。

如果包C、D和E没有嵌入(压缩)在第二个引导程序中,请记住将它们作为有效载荷添加到ExePackage中。

以这种方式,我们仍然有一个处理包C,D和E通过应用程序和功能,用户可以选择时间卸载软件包。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58412042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档