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.
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 !