如何在WiX安装程序中处理ManagedBootstrapperApplicationHost并重启/重启?

Gau*_*rav 3 installer wix burn wix3.7

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

如何在代码中处理重启?

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

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Rob*_*ing 5

如果在引导程序应用程序ApplyComplete()回调中需要重新启动,则引擎将返回.您可以在此时决定接受重新启动并从回调中返回.Result.RestartApplyComplete()

或者,您可能希望在完成对话框或某事物上提示用户,以便为他们提供接受重启的选项.在这种情况下,您可以Result.RestartShutdown()回调返回,引擎将在引导程序应用程序退出后重新启动.

我倾向于在我的bootstrapper应用程序中最常使用第二个选项.