如何显示预请求安装过程中发生的错误



使用Wix 3.10

在Windows 8.0上安装.NET 4.6时,Microsoft软件包会返回一个错误,因为该计算机丢失了另一个更大的kb。到目前为止还可以,但我想在我的自定义wpf UI中显示来自NET安装程序的这条消息,但我不知道会触发什么事件。

在我的视图模型中,我有BootstrapperApplication的当前实例,我的第一种方法不会记录任何内容:

 internal MainViewModel(BootstrapperApplication model, Action<LogLevel, string> onLoggerAction, (....))
{
  this.Model = model;
  this.Model.DetectPackageComplete += this.DetectPackageComplete;
  this.Model.DetectRelatedBundle += new EventHandler<DetectRelatedBundleEventArgs>(this.Model_DetectRelatedBundle);
  this.Model.DetectPriorBundle += new EventHandler<DetectPriorBundleEventArgs>(this.Model_DetectPriorBundle);
  this.Model.DetectRelatedMsiPackage += new EventHandler<DetectRelatedMsiPackageEventArgs>(this.Model_DetectRelatedMsiPackage);
  this.Model.DetectTargetMsiPackage += new EventHandler<DetectTargetMsiPackageEventArgs>(this.Model_DetectTargetMsiPackage);
  this.Model.Error += this.SetupError;
  [...]
}
public void SetupError(object sender, ErrorEventArgs args)
{
   this.onLoggerAction(LogLevel.Standard, string.Format("Error occured. Message: {0}", args.ErrorMessage));
   this.onLoggerAction(LogLevel.Standard, string.Format("Error occured. ErrorCode: {0}", args.ErrorCode));
   this.onLoggerAction(LogLevel.Standard, string.Format("Error occured. Type: {0}", args.ErrorType));
   this.dispatcher.BeginInvoke((Action)(() => this.ShowErrorView(args)));
}

日志文件显示错误:

[07D0:06D4][2016-05-09T09:16:36]i301: Applying execute package: Netfx4FullInternal, action: Install, path: C:ProgramDataPackage Cache3049A85843EAF65E89E2336D5FE6E85E416797BENDP46-KB3045557-x86-x64-AllOS-ENU.exe, arguments: '"C:ProgramDataPackage Cache3049A85843EAF65E89E2336D5FE6E85E416797BENDP46-KB3045557-x86-x64-AllOS-ENU.exe" /passive /norestart'
[07D0:06D4][2016-05-09T09:18:11]e000: Error 0x800713ec: Process returned error: 0x13ec
[07D0:06D4][2016-05-09T09:18:11]e000: Error 0x800713ec: Failed to execute EXE package.
[0928:09AC][2016-05-09T09:18:11]e000: Error 0x800713ec: Failed to configure per-machine EXE package

但是我该如何处理这个错误呢?

您已经使用了"/norestart"one_answers"/passive"参数,请尝试使用"/log C:\pathtolog\yourlog.log",这样您就可以看到哪里出了问题。

在运送安装程序之前,您应该已经修复了所有错误,而不是全部显示。

想象一下,安装了一些东西,却出现了成千上万的错误。。。。

最新更新