Ookii-dialogs-wpf: System.ArgumentNullException в ComCtlv6ActivationContext

Созданный на 1 дек. 2020  ·  4Комментарии  ·  Источник: ookii-dialogs/ookii-dialogs-wpf

При запуске в качестве автономного однофайлового пакета .NET 5 возникает следующая ошибка:

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)

Ответственный код выглядит так:

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

Похоже, что метод ComCtlv6ActivationContext.EnsureActivateContextCreated не ожидает, что assemblyLoc будет пустой строкой, что может быть при запуске как автономного однофайлового пакета (см. Примечания к документации Assembly.Location ):
https://github.com/augustoproiete/ookii-dialogs-wpf/blob/2a64fea6c5c3d32f468814d205a337ce78afedab/src/Ookii.Dialogs.Wpf/ComCtlv6ActivationContext.cs#L70 -L79

Метод Path.GetDirectoryName возвращает null при передаче пустой строки (хотя в документации для него вместо

Я думаю, это больше не будет проблемой, когда проблема №31 будет реализована, но подумал, что об этом стоит упомянуть, поскольку, похоже, нет простого обходного пути.

Все 4 Комментарий

Спасибо, что сообщили об этом @mgpreston!

Вы правы: это не будет проблемой, когда будет реализован №31, но тот факт, что автономные однофайловые приложения .NET 5 ломаются, повышает приоритет для его реализации.

Сегодня вечером я выпущу релиз, в котором будет исправлена ​​эта проблема.

@mgpreston Я только что опубликовал Ookii.Dialogs.Wpf v3.1.0 на nuget.org, в котором это исправлено.

@augustoproiete Спасибо, что

@mgpreston Добро пожаловать! Спасибо, что подтвердили, что это работает!

Была ли эта страница полезной?
0 / 5 - 0 рейтинги