Ookii-dialogs-wpf: System.ArgumentNullException em ComCtlv6ActivationContext

Criado em 1 dez. 2020  ·  4Comentários  ·  Fonte: ookii-dialogs/ookii-dialogs-wpf

Estou encontrando o seguinte erro ao executar como um pacote de arquivo único .NET 5 autocontido:

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)

O código responsável é simplesmente parecido com este:

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

Parece que o método ComCtlv6ActivationContext.EnsureActivateContextCreated não espera que assemblyLoc seja uma string vazia, o que pode ser quando executado como um pacote de arquivo único autocontido (consulte Comentários sobre os documentos Assembly.Location ):
https://github.com/augustoproiete/ookii-dialogs-wpf/blob/2a64fea6c5c3d32f468814d205a337ce78afedab/src/Ookii.Dialogs.Wpf/ComCtlv6ActivationContext.cs#L70 -L79

O método Path.GetDirectoryName retorna nulo quando passado uma string vazia (embora os documentos para ele sugiram uma ArgumentException em vez disso).

Acho que isso não será mais um problema quando o problema nº 31 for implementado, mas acho que vale a pena mencionar, pois não parece ser uma solução fácil.

bug

Todos 4 comentários

Obrigado por relatar isso @mgpreston!

Você está correto: isso não será um problema quando o nº 31 for implementado, mas o fato de que aplicativos autônomos de arquivo único .NET 5 estão quebrando aumenta a prioridade de implementação.

Vou lançar um comunicado esta noite que corrige esse problema.

@mgpreston Acabei de publicar Ookii.Dialogs.Wpf v3.1.0 em nuget.org que corrige isso

@augustoproiete Obrigado por corrigir isso tão rapidamente. Estou feliz em informar que está funcionando perfeitamente agora!

@mgpreston De nada! Obrigado por confirmar que funciona!

Esta página foi útil?
0 / 5 - 0 avaliações