Ookii-dialogs-wpf: System.ArgumentNullException in ComCtlv6ActivationContext

Erstellt am 1. Dez. 2020  ·  4Kommentare  ·  Quelle: ookii-dialogs/ookii-dialogs-wpf

Bei der Ausführung als eigenständiges .NET 5-Einzeldatei-Bundle tritt der folgende Fehler auf:

System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
at System.IO.Path.Combine(String path1, String path2)
at Ookii.Dialogs.Wpf.ComCtlv6ActivationContext.EnsureActivateContextCreated()
at Ookii.Dialogs.Wpf.ComCtlv6ActivationContext..ctor(Boolean enable)
at Ookii.Dialogs.Wpf.TaskDialog.ShowDialog(IntPtr owner)
at Ookii.Dialogs.Wpf.TaskDialog.ShowDialog(Window owner)

Der dafür zuständige Code sieht nur so aus:

var dialog = new VistaFolderBrowserDialog();
dialog.ShowDialog(Application.Current.MainWindow);

Es sieht so aus, als ob die ComCtlv6ActivationContext.EnsureActivateContextCreated-Methode nicht erwartet, dass assemblyLoc eine leere Zeichenfolge ist, was bei der Ausführung als eigenständiges Einzeldatei-Bundle der Fall sein kann (siehe Anmerkungen zu Assembly.Location-Dokumenten ):
https://github.com/augustoproiete/ookii-dialogs-wpf/blob/2a64fea6c5c3d32f468814d205a337ce78afedab/src/Ookii.Dialogs.Wpf/ComCtlv6ActivationContext.cs#L70 -L79

Die Methode Path.GetDirectoryName gibt null zurück, wenn eine leere Zeichenfolge übergeben wird (obwohl die Dokumentation dafür stattdessen eine ArgumentException vorschlägt).

Ich denke, dies wird kein Problem mehr sein, wenn Issue #31 implementiert ist, hielt es aber für erwähnenswert, da es keinen einfachen Workaround zu geben scheint.

bug

Alle 4 Kommentare

Danke, dass du das @mgpreston gemeldet hast!

Sie haben Recht: Dies wird kein Problem sein, wenn #31 implementiert wird, aber die Tatsache, dass eigenständige .NET 5-Einzeldatei-Apps kaputt gehen, erhöht die Priorität für die Implementierung.

Ich werde heute Abend eine Veröffentlichung veröffentlichen, die dieses Problem behebt.

@mgpreston Ich habe gerade Ookii.Dialogs.Wpf v3.1.0 auf nuget.org veröffentlicht, was dies behebt

@augustoproiete Vielen Dank, dass Sie das so schnell

@mgpreston Gern geschehen ! Danke für die Bestätigung, dass es funktioniert!

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen