Wix Burn:自定义引导程序升级,卸载旧包但进程仍然存在

Wix Burn: Custom Bootstrapper upgrade, uninstall old bundle but process still remain

我有一个自定义的 Bootstrapper,我正在尝试通过更改版本来升级我的 Bundle(所有 MSI 的版本都保持不变,这不是一个理想的场景)。两个捆绑包都有相同的升级代码(他们应该有)。

升级完成后,旧包会悄悄卸载,因为它会在安装新包后使用参数 /quit 调用,但是一旦旧包的卸载完成,过程仍然存在并且不会自杀。 因此,我当前的 Custom Bootstrapper 状态没有改变。

问题:任何人都可以告诉我在这里可以做什么,以终止旧的捆绑进程,以便当前的捆绑继续升级而不会卡住?

我想我已经解决了问题,因为升级时刻录引擎会创建一个额外的进程来删除旧的包条目,所以为了 return 到主线程卸载发生后,我在我的 CustomBA 中的 ApplyComplete 事件中做了以下更改。

if (CustomBootstrapperApplication.Model.PlannedAction == LaunchAction.Uninstall && isRelatedBundlePresent) // this will be called in case of Upgrade of the bundle
{
    CustomBootstrapperApplication.Dispatcher.InvokeShutdown();                 
}

isRelatedBundlePresent 是我在 RelationType.Upgrade

时在 DetectRelatedBundle 中设置的标志