C# WiX安装程序在用户取消安装时触发回滚

C# WiX安装程序在用户取消安装时触发回滚,c#,wix,windows-installer,rollback,installation-package,C#,Wix,Windows Installer,Rollback,Installation Package,如果在此过程中安装失败,它将回滚安装程序最近的更改,但当用户通过“取消”按钮取消安装时,安装程序将失败,并且不会回滚最近的更改 如果用户通过按钮取消安装,我们如何触发回滚过程?回滚:这是旧的,但只是为了记录:如果安装程序没有按安装顺序(其中添加或修改了文件和注册表项等内容)-与用户界面序列相反(收集安装选项和设置的地方)-应该没有任何可回滚的内容。当安装对系统进行了更改并且发生致命错误,因此必须撤消整个安装时,将发生回滚。这是在用户界面序列之后,您通常会在屏幕上看到进度条 安装事务:可能会错误地

如果在此过程中安装失败,它将回滚安装程序最近的更改,但当用户通过“取消”按钮取消安装时,安装程序将失败,并且不会回滚最近的更改

如果用户通过按钮取消安装,我们如何触发回滚过程?

回滚:这是旧的,但只是为了记录:如果安装程序没有按
安装顺序
(其中添加或修改了文件和注册表项等内容)-与
用户界面序列相反(收集安装选项和设置的地方)-应该没有任何可回滚的内容。当安装对系统进行了更改并且发生致命错误,因此必须撤消整个安装时,将发生回滚。这是在用户界面序列之后,您通常会在屏幕上看到进度条


安装事务:可能会错误地更改UI序列<代码>这样做总是一个设计错误,因为除了在
安装执行序列中的
之间的操作之外,不会发生回滚。在其他序列中从其他位置进行的任何其他更改都不会回滚。从InstallInitialize到InstallFinalize(包括InstallFinalize)的序列是作为可回滚事务运行的安装的一部分,所有其他序列不应更改系统(但有时会更改)。

您需要说明是哪个取消按钮。它是UI序列中的一个吗?它是在实际安装和进度条中有时显示的吗?它是通过Bootstrapper定义的。添加了一个答案,尽管这很旧。