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