2017-05-31 58 views
0

我已经创建了一个Wix安装程序,它具有多种功能,例如将服务部署到Tomcat,添加和更新tomcat服务器和其他服务的配置文件,在IIS创建Web应用程序,创建MongoDB等。 因此,要执行一些更新配置类我有写延迟执行的自定义操作,有时由于某些原因自定义操作失败,并导致回滚,有时这种回滚留下一些足迹,如在Tomcat或其他配置文件的服务,或可能想要删除Mongo DB等Wix安装程序 - 如何在回滚发生后立即运行自定义操作?

所以在这里我想在回滚发生后使用自定义操作删除左侧脚印。

我已经添加了一个自定义动作Execute="rollback"并调用它Before="Installfinalize",但它只是在回滚发生之前调用。

有什么办法可以巧妙处理这种情况吗?

回答

0

Rollback custom actions只在发生故障后才执行,并且仅在错误发生之前安排的子集。假设你需要提升的特权,它们是你唯一的干净选项,所以我将开始验证你的行动安排的顺序。

还有一个地方可以尝试在回滚发生后运行一个动作:作为Install UI Sequence的结尾。当显示完整用户界面的安装中发生错误时,它将运行UI序列条目msiDoActionStatusFailure(-3)。通常这会显示一个对话框,说明安装(或卸载)失败。并且很难做更多的事情,因为属性不会从执行序列回流到UI序列。

从理论上讲,您可以在该条目中安排任何操作,以便先做某件事。但是,此操作将以与UI相同的权限运行(通常受限),并且只会在显示UI时运行。所以这可能不会帮助你的情况。 (另外,除非你小心,否则如果你不能调用它会显示的对话框,你会弄乱预期的UI体验。)

相关问题