WIX 3 和主要升级:旧包卸载无需引导程序应用程序即可运行

问题描述 投票:0回答:1

我有一个软件包和一个捆绑包,用于安装/修复/修改/卸载该软件包。该捆绑包具有托管引导程序应用程序。框架是WIX 3.11。

该套件支持重大升级。

    <MajorUpgrade AllowSameVersionUpgrades="yes" AllowDowngrades="no" DowngradeErrorMessage="A newer version of [ProductName] is already installed." />

该捆绑包还可以处理重大升级。

我发现,在重大升级时,旧软件包会被新软件包卸载 - 但没有旧 BA 的监督。旧的 BA 也在运行,但不执行旧包的卸载。

我的问题是:BA 在卸载时设置了一些变量。如果进行重大升级,这些不会转发到包中。 (通过 ARP 卸载时,BA 会规则卸载其软件包,并且某些属性具有 BA 提供的正确值。)

所以问题是:旧的BA如何在执行重大升级时卸载自己的旧包。

注意:如果进行重大升级,我只有 3 个日志文件。一本是给新来的文学士的。另一份针对较新的软件包 - 其中包括旧软件包的卸载日志。旧 BA 的一份日志讲述了有关相关捆绑包和相关软件包的信息,但不应用其软件包的卸载。

wix windows-installer bootstrapper wix3 wix3.11
1个回答
0
投票

不要使用MajorUpgrade。你的要求有点奇怪,但是如果新的MSI包在安装新MSI的过程中没有升级旧的MSI包,那么旧的Bundle在卸载过程中会卸载旧的MSI包。

© www.soinside.com 2019 - 2024. All rights reserved.