3

我正在使用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;
    }
}
4

1 回答 1

5

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

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

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

于 2013-04-10T15:17:40.470 回答