使用自定义托管 Bootstrap 应用程序,我无法在单击取消按钮时停止设置进度。我拉出带有是/否选项的确认 View 。确认取消后,设置回滚就好了。或者,如果拒绝,它会继续。这是根据以下内容完成的: Cancel Installation and Rollback using wix burn Bootstrapper UI
我注意到 WiX 设置套件本身也存在同样的问题,您可以在其中单击取消并等待,并且设置不会等待用户确认或拒绝取消,而是继续进行。
所以,我的问题是,如何暂停进度,直到在确认 View 中确认(或拒绝)取消命令?
更新:我试图通过以下机制来做到这一点:
添加一个名为 CancelWaiting
的新属性.如果CancelWaiting
为真,则在 ProgressViewModel 中更改逻辑,使 <PropertyChangedEventArgs>.Result
设置为 Result.Suspend
.这里的挑战是进行多命令绑定(bind)。另一种方法是将 Cancel 和 CancelWaiting 路径合并为一个。无论如何,一旦我开始,我会更新这个线程。如果有人有任何其他想法,请发表。
最佳答案
返回Result.Suspend
将指示Burn 引擎尽快停止安装并保持Bundle 已注册以再次执行。这不太可能是您想要做的。
如果你想阻止进度继续进行,那么你必须要有进度回调方法wait而不是return。您可以通过显示进度回调方法的消息框来实现这一点,也可以让进度回调等待事件并在用户在 UI 线程上做出选择后向事件发出信号。
关于WiX 刻录自定义 BA - 如何在取消命令触发时暂停进度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16247036/