Mit Wix 3.10Wie erros bei der Installation von Voraussetzungen bieten
Bei der Installation von .NET 4.6 auf Windows 8.0, das Microsoft-Paket gibt einen Fehler auftreten zeigen, da der Computer anothger kb von Microsoft fehlt. Das ist soweit in Ordnung, aber ich möchte diese Nachricht vom NET-Installer in meiner benutzerdefinierten wpf-UI anzeigen, aber ich habe nicht herausgefunden, welches Ereignis ausgelöst wird.
In meinem Viewmodel Ich habe die aktuelle Instanz des BootstrapperApplication und mein erster Ansatz wird nichts log:
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)));
}
Die Protokolldatei zeigt den Fehler:
[07D0:06D4][2016-05-09T09:16:36]i301: Applying execute package: Netfx4FullInternal, action: Install, path: C:\ProgramData\Package Cache\3049A85843EAF65E89E2336D5FE6E85E416797BE\NDP46-KB3045557-x86-x64-AllOS-ENU.exe, arguments: '"C:\ProgramData\Package Cache\3049A85843EAF65E89E2336D5FE6E85E416797BE\NDP46-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
Aber wie kann ich umgehen dieser Fehler?
Es funktioniert jetzt. Ich hatte einen dummen Fehler, der meine ba.dll im bundle.wxs bezeichnet. Ich bekomme die (kryptischen) Rückgabecodes, aber nicht die ErrorMessage im ExecutePackageCompleted-Ereignis. Aber jetzt kann ich den Benutzer informieren, dass etwas falsch gelaufen ist, aber die echte ErrorMessage von dem darunterliegenden Installer wäre nett –