Ookii-dialogs-wpf: System.ArgumentNullException dans ComCtlv6ActivationContext

Créé le 1 déc. 2020  ·  4Commentaires  ·  Source: ookii-dialogs/ookii-dialogs-wpf

Je rencontre l'erreur suivante lors de l'exécution en tant que bundle de fichiers unique .NET 5 autonome :

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)

Le code responsable ressemble à ceci :

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

Il semble que la méthode ComCtlv6ActivationContext.EnsureActivateContextCreated ne s'attend pas à ce que assemblyLoc soit une chaîne vide, ce qui peut être le cas lors de l'exécution en tant que bundle de fichiers unique autonome (voir Remarques sur la documentation Assembly.Location ):
https://github.com/augustoproiete/ookii-dialogs-wpf/blob/2a64fea6c5c3d32f468814d205a337ce78afedab/src/Ookii.Dialogs.Wpf/ComCtlv6ActivationContext.cs#L70 -L79

La méthode Path.GetDirectoryName renvoie null lorsqu'elle passe une chaîne vide (même si les documents pour cela suggèrent une ArgumentException à la place).

Je suppose que ce ne sera plus un problème lorsque le problème #31 sera mis en œuvre, mais j'ai pensé qu'il valait la peine de le mentionner car il ne semble pas y avoir de solution de contournement facile.

bug

Tous les 4 commentaires

Merci d'avoir signalé ce @mgpreston !

Vous avez raison : ce ne sera pas un problème lorsque #31 sera implémenté, mais le fait que les applications autonomes .NET 5 à fichier unique se brisent augmente la priorité de son implémentation.

Je sortirai un communiqué ce soir qui résout ce problème.

@mgpreston Je viens de publier Ookii.Dialogs.Wpf v3.1.0 sur nuget.org qui corrige ce problème

@augustoproiete Merci d'avoir

@mgpreston De rien ! Merci d'avoir confirmé que cela fonctionne !

Cette page vous a été utile?
0 / 5 - 0 notes