WiX 刻录自定义 BA - 如何在取消命令触发时暂停进度?

标签 wix windows-installer bootstrapper burn

使用自定义托管 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/

相关文章:

wix - 如何在wix中创建目录?

WIX 自定义操作序列

wix - 使 WiX Bootstrapper 可用于使用 .NET 4.0 进行引导

wix - 安装 WiX Bundle 时如何避免卸载以前安装的 ExePackage(可再发行组件)?

c# - 在wixsharp中为项目指定自定义许可文件

wix - 命名空间前缀 'bal' 未定义

visual-studio-2015 - 如何在自定义操作序列中安装主应用程序之前对静默安装程序 .exe 文件进行排序?

c# - 使用 Unity BootStrapper 和 Prsim 将参数传递给 Shell Viewmodel

installation - 如果注册表项存在,Wix 有条件地安装组件

WiX 升级问题 - 文件的主要版本增加,但修订版本较低,现在删除旧文件,但升级过程中未复制新文件