我正在使用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;
}
}
答案 0 :(得分:5)
如果ApplyComplete()
回调到bootstrapper application,则需要重新启动才会返回引擎。您可以决定在那一刻接受重新启动并从{{1}}回调中返回Result.Restart
。
或者,您可能希望在完成对话框或其他内容上提示用户,以便为他们提供接受重启的选项。在这种情况下,您可以从ApplyComplete()
回调中返回Result.Restart
,引导程序将在您的引导程序应用程序退出后重新启动。
我倾向于在我的引导程序应用程序中最常使用第二个选项。