我正在努力解决自定义引导程序升级问题。依照指示这个线程 https://stackoverflow.com/questions/17676657/wix-burn-bootstrapper-majorupgrade,我正在使用 LaunchAction.Install。
这确实会升级产品以及 Boostrapper,但较旧的 Bootstrapper 仍保留在那里,如以下屏幕截图所示。
如果我从这里调用版本 1.0.0.0,它将显示安装对话框,但不会执行任何操作。但是,调用版本 1.0.1.0 将为我提供卸载产品的选项。但是,卸载后,它只会删除自身,而“我的产品”会被留下。
我也尝试过
_bootstrapper.Engine.Plan(LaunchAction.UpdateReplace);
and
_bootstrapper.Engine.Plan(LaunchAction.UpdateReplaceEmbedded);
但没有效果。
问题:如何升级旧安装而不陷入上述情况?谁能提供 CustomBA 升级的工作示例吗?
Regards
检查 PlanRelatedBundle 事件。您可以在其中告诉引擎如何处理旧包。
如果您想要一个捆绑包替换旧的捆绑包,则两者的 UpgradeCode 应该相同。在这种情况下,它将默认卸载旧包。
此外,旧捆绑包需要支持安静卸载,因为在安装新捆绑包后将使用参数 /quit 调用它。
您可以在 BootstrapperApplication.Command.Display 属性中检查它。如果它是从另一个捆绑包调用的,则它应该是“嵌入式”。在本例中,BootstrapperApplication.Command.Action 设置为“卸载”。
如果这些都不起作用,请检查在 AppData\Temp 文件夹中创建的日志。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)