Installation 如何处理ManagedBootTrapperApplicationHost&;在WiX安装程序中重新启动/重新启动?

Installation 如何处理ManagedBootTrapperApplicationHost&;在WiX安装程序中重新启动/重新启动?,installation,wix,burn,wix3.7,Installation,Wix,Burn,Wix3.7,我使用来安装我们项目的每个必备组件,并且我使用ManagedBootTrapperApplicationHost来拥有一个自定义UI。我正在检查Windows Installer版本并将其作为先决条件安装,但需要重新启动 如何处理代码中的重新启动 我尝试在下面的代码中检查它,但是重新启动时的e.status值也是0 代码 如果在ApplyComplete()回调中需要重新启动发动机,发动机将返回。您可以在此时决定接受重新启动并返回结果。从ApplyComplete()回调重新启动 或者,您可能希

我使用来安装我们项目的每个必备组件,并且我使用ManagedBootTrapperApplicationHost来拥有一个自定义UI。我正在检查Windows Installer版本并将其作为先决条件安装,但需要重新启动

如何处理代码中的重新启动

我尝试在下面的代码中检查它,但是重新启动时的
e.status
值也是0

代码
如果在
ApplyComplete()
回调中需要重新启动发动机,发动机将返回。您可以在此时决定接受重新启动并返回结果。从
ApplyComplete()
回调重新启动

或者,您可能希望在“完成”对话框或其他内容上提示用户,让他们选择是否接受重新启动。在这种情况下,您可以从
Shutdown()
回调返回
Result.Restart
,引擎将在引导程序应用程序退出后重新启动

我倾向于在我的引导程序应用程序中经常使用第二个选项

private void PlanComplete(object sender, PlanCompleteEventArgs e)
{
    logger.LogInfoMessage("-------------->>  "+ e.Status.ToString());
    if (Hresult.Succeeded(e.Status))
    {
        this.root.PreApplyState = this.root.State;
        this.root.State = InstallationState.Applying;
        WixBA.Model.Engine.Apply(this.root.ViewWindowHandle);
    }
    else
    {
        this.root.State = InstallationState.Failed;
    }
}