Wix bootstrapper如何防止回滚

本文关键字:何防止 bootstrapper Wix | 更新日期: 2023-09-27 18:14:54

我想知道当包失败时是否有办法防止回滚。

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

(否则我不想阻止回滚)

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

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

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

读取Status的示例:

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

但它仍然回滚

Wix bootstrapper如何防止回滚

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

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