我在 InstallFinalize 之后安排了自定义操作。当我运行安装程序但它失败时,我注意到我收到错误屏幕,提示安装程序失败并且我的计算机没有进行任何更改,但如果我再次运行安装程序,它有修复、更改或删除的选项。我认为这是因为未触发回滚事件。我怎样才能让它发生?
问问题
1194 次
1 回答
4
InstallFinalize
动作是安装事务提交到机器时。在该点之后(或之前InstallInitialize
)发生的任何事情都发生在事务之外。这意味着它们无法回滚。
相反,您需要在前后的 InstallInitialize
某个时间安排您的自定义操作,以使其出错并导致回滚。此外,修改机器状态的自定义操作应该是. MSI SDK 中的这个主题是一个很好的起点,然后可以阅读有关它的主题。 InstallFinalize
deferred
如果您想查看编写自定义操作方式的示例,我建议您查看src\ca\wixca\dll
. 根据 MSI SDK,许多不同类型的自定义操作以我希望是“正确”的方式做事。
于 2013-04-04T12:37:05.620 回答