我是 MSI 安装程序、wix 和 wixsharp 的新手。我需要在安装过程中通过一些操作来实现安装程序(比如调用一些 *.exe 或设置任务调度程序等)。如果出现任何问题和异常,我需要回滚所有已安装的项目。
如何使用 Wixsharp (Wix#) 实现回滚?我在这个项目的页面上没有找到任何信息。
我无法弄清楚自定义操作与安装事件处理程序之前\之后之间的实际区别。为什么我需要使用完全自定义的操作,而不是在 wix# 中使用 AfterInstall 甚至处理程序?
我是 MSI 安装程序、wix 和 wixsharp 的新手。我需要在安装过程中通过一些操作来实现安装程序(比如调用一些 *.exe 或设置任务调度程序等)。如果出现任何问题和异常,我需要回滚所有已安装的项目。
如何使用 Wixsharp (Wix#) 实现回滚?我在这个项目的页面上没有找到任何信息。
我无法弄清楚自定义操作与安装事件处理程序之前\之后之间的实际区别。为什么我需要使用完全自定义的操作,而不是在 wix# 中使用 AfterInstall 甚至处理程序?
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;
}
}