Saya mengalami kesalahan berikut saat menjalankan sebagai bundel file tunggal .NET 5 mandiri:
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)
Kode yang bertanggung jawab hanya terlihat seperti ini:
var dialog = new VistaFolderBrowserDialog();
dialog.ShowDialog(Application.Current.MainWindow);
Sepertinya metode ComCtlv6ActivationContext.EnsureActivateContextCreated tidak mengharapkan assemblyLoc
menjadi string kosong, yang bisa jadi saat dijalankan sebagai bundel file tunggal mandiri (lihat Keterangan dari Assembly.Location docs ):
https://github.com/augustoproiete/ookii-dialogs-wpf/blob/2a64fea6c5c3d32f468814d205a337ce78afedab/src/Ookii.Dialogs.Wpf/ComCtlv6ActivationContext.cs#L70 -L79
Metode Path.GetDirectoryName
mengembalikan null ketika melewatkan string kosong (meskipun dokumen untuk itu menyarankan ArgumentException sebagai gantinya).
Saya kira ini tidak akan lagi menjadi masalah ketika masalah #31 diimplementasikan, tetapi saya pikir itu layak disebutkan karena sepertinya tidak ada solusi yang mudah.
Terima kasih telah melaporkan @mgpreston ini!
Anda benar: Ini tidak akan menjadi masalah ketika #31 diterapkan, tetapi fakta bahwa aplikasi file tunggal .NET 5 mandiri sedang rusak meningkatkan prioritas untuk mengimplementasikannya.
Saya akan mengeluarkan rilis malam ini yang memperbaiki masalah ini.
@mgpreston Saya baru saja menerbitkan Ookii.Dialogs.Wpf v3.1.0 di nuget.org yang memperbaiki ini
@augustoproiete Terima kasih telah memperbaiki ini dengan sangat cepat. Saya senang untuk melaporkan bahwa itu bekerja dengan sempurna sekarang!
@mgpreston Sama- sama! Terima kasih telah mengonfirmasi bahwa ini berfungsi!