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