WiX burn自定义BA-当Cancel命令触发时如何暂停进度?

WiX burn自定义BA-当Cancel命令触发时如何暂停进度?,wix,windows-installer,bootstrapper,burn,Wix,Windows Installer,Bootstrapper,Burn,使用自定义托管引导程序应用程序,我无法在单击“取消”按钮时停止安装进度。我调出一个带有是/否选项的确认视图。一旦确认取消,设置将正常回滚。或者,如果被拒绝,它将继续下去。这项工作是根据以下规定进行的: 我注意到同样的问题也发生在WiX安装工具包中,您可以单击cancel并等待,安装过程不再等待用户确认或拒绝取消,而是继续进行 因此,我的问题是,在确认视图中确认(或拒绝)取消命令之前,如何暂停进度 更新:我正试图通过以下机制完成此操作: 添加名为CancelWaiting的新属性。如果Cance

使用自定义托管引导程序应用程序,我无法在单击“取消”按钮时停止安装进度。我调出一个带有是/否选项的确认视图。一旦确认取消,设置将正常回滚。或者,如果被拒绝,它将继续下去。这项工作是根据以下规定进行的:

我注意到同样的问题也发生在WiX安装工具包中,您可以单击cancel并等待,安装过程不再等待用户确认或拒绝取消,而是继续进行

因此,我的问题是,在确认视图中确认(或拒绝)取消命令之前,如何暂停进度

更新:我正试图通过以下机制完成此操作:
添加名为
CancelWaiting
的新属性。如果
CancelWaiting
为true,则在ProgressViewModel中,更改逻辑,使
.Result
设置为
Result.Suspend
。这里的挑战是执行多个命令绑定。另一种方法是将Cancel和CancelWaiting路径合并为一个路径。不管怎样,我会在运行后更新此线程。如果有人有任何其他想法,请发布。

返回
结果。Suspend
将指示Burn引擎尽快停止安装,并保持捆绑包注册以再次执行。这不太可能是你想要做的


如果要阻止进度继续,则必须使用进度回调方法wait且不返回。您可以通过显示progress callback方法中的消息框来实现这一点,也可以让progress callback等待事件,并在用户在UI线程上做出选择后发出事件信号。

我知道这很旧,但我的方法可能会帮助其他人。我面临着同样的问题,我不得不暂停安装/卸载定制burn wpf应用程序的进度。 我就是这样解决的: 我通过window.ShowDialog()创建了一个弹出模式窗口,因为gui线程将阻塞,直到关闭弹出窗口

当用户按退出/取消时,可以执行以下操作:

ModalWindow newWindow = new ModalWindow();
newWindow.ShowDialog();
您可以添加新窗口并以这种方式调用它。这将暂停UI线程,直到用户关闭或向ModalWindow提供反馈

但是如果你正在寻找其他的方法,这里有一本很好的读物

根据Rob的建议,我最终显示了progress回调方法中的取消确认视图。