0

我是 MSI 安装程序、wix 和 wixsharp 的新手。我需要在安装过程中通过一些操作来实现安装程序(比如调用一些 *.exe 或设置任务调度程序等)。如果出现任何问题和异常,我需要回滚所有已安装的项目。

  1. 如何使用 Wixsharp (Wix#) 实现回滚?我在这个项目的页面上没有找到任何信息。

  2. 我无法弄清楚自定义操作与安装事件处理程序之前\之后之间的实际区别。为什么我需要使用完全自定义的操作,而不是在 wix# 中使用 AfterInstall 甚至处理程序?

4

1 回答 1

1

wix# 的作者使用权限提升和第三方对程序集的引用帮助我回滚(最困难的情况)。

完整答案在这里:https ://wixsharp.codeplex.com/discussions/646337

通常,回滚可以这样完成:

project.AfterInstall += project_AfterInstall;
...
static void project_AfterInstall(SetupEventArgs e)
{
    try
    {
        //do your stuff
    }
    catch (Exception ex)
    {
        e.Session.Log(ex.Message);
        e.Result = ActionResult.Failure;
    }
}
于 2015-10-28T20:53:42.557 回答