Wix 安装失败时回滚事件

Wix 安装失败时回滚事件,wix,wix3.5,Wix,Wix3.5,我在InstallFinalize之后安排了自定义操作。当我运行安装程序失败时,我注意到出现了错误屏幕,显示安装程序失败,并且没有对我的计算机进行任何更改,但如果我再次运行安装程序,它可以选择修复、更改或删除。我假设这是因为没有触发回滚事件。如何实现这一点?当安装事务提交到计算机时,InstallFinalize操作。在该点之后(或InstallInitialize之前)发生的任何事情都发生在事务之外。这意味着它们无法回滚 相反,您需要在InstallInitialize之后和InstallFi

我在InstallFinalize之后安排了自定义操作。当我运行安装程序失败时,我注意到出现了错误屏幕,显示安装程序失败,并且没有对我的计算机进行任何更改,但如果我再次运行安装程序,它可以选择修复、更改或删除。我假设这是因为没有触发回滚事件。如何实现这一点?

当安装事务提交到计算机时,
InstallFinalize
操作。在该点之后(或
InstallInitialize
之前)发生的任何事情都发生在事务之外。这意味着它们无法回滚

相反,您需要在
InstallInitialize
之后和
InstallFinalize
之前安排自定义操作,以使其出错并导致回滚。此外,修改机器状态的自定义操作应该是延迟的。这是一个很好的开始,然后阅读相关主题的地方


如果您想查看编写自定义操作的示例,我建议您查看
src\ca\wixca\dll
中WiX工具集中的一些示例。根据MSI SDK,许多不同类型的自定义操作以我希望是“正确”的方式进行操作。

当安装事务提交到机器时,
InstallFinalize
操作。在该点之后(或
InstallInitialize
之前)发生的任何事情都发生在事务之外。这意味着它们无法回滚

相反,您需要在
InstallInitialize
之后和
InstallFinalize
之前安排自定义操作,以使其出错并导致回滚。此外,修改机器状态的自定义操作应该是延迟的。这是一个很好的开始,然后阅读相关主题的地方

如果您想查看编写自定义操作的示例,我建议您查看
src\ca\wixca\dll
中WiX工具集中的一些示例。根据MSI SDK,许多不同类型的自定义操作以我希望是“正确”的方式进行操作