Wix bootstrapper如何防止回滚

时间:2016-10-26 10:00:02

标签: c# wix windows-installer bootstrapper burn

我想知道是否有办法在Package失败时阻止回滚。

就像我的情况一样,我有一个.bat包,用于设置某些服务的用户名和密码。如果失败,我想在安装结束时显示一条消息,告知用户需要手动设置凭据。此外,当我在安装之前检查凭证时,由于某种原因他们失败了,我告诉用户该凭证可能是错误的,并询问他是否要继续。

(否则我不想阻止回滚)

我知道<ExitCode/>中有<ExePackage/>我可以用来阻止回滚,但是我无法在我的Bootstrapper中检测到错误值。

我还尝试在程序包完成时读取我的Bootstrapper中的Status,然后返回以下内容之一:

e.Result = Result.Continue;
e.Result = Result.Ignore;
e.Result = Result.Ok;

阅读状态的例子:

if (e.Status == -2147024895)
{
    e.Result = Result.Continue;
}

但它仍然会回滚。

1 个答案:

答案 0 :(得分:0)

我从这里得到了答案:http://lists.wixtoolset.org/pipermail/wix-users-wixtoolset.org/

基本上,您需要做的就是将要处理返回代码的包设置为Vital='no',并在ExecutePackageComplete处理程序中使用e.Result = Result.Ignore;来防止回滚。