Closed
Description
I followed the sample from Ookii.Dialogs.Wpf.Sample for instantiating a TaskDialog in a .NET Core 3.1 Application.
TaskDialog dialog = new TaskDialog();
dialog.WindowTitle = "Task dialog sample";
dialog.MainInstruction = "This is an example task dialog.";
dialog.Content = "Task dialogs are a more flexible type of message box. Among other things, task dialogs support custom buttons, command links, scroll bars, expandable sections, radio buttons, a check box (useful for e.g. \"don't show this again\"), custom icons, and a footer. Some of those things are demonstrated here.";
dialog.ExpandedInformation = "Ookii.org's Task Dialog doesn't just provide a wrapper for the native Task Dialog API; it is designed to provide a programming interface that is natural to .Net developers.";
dialog.Footer = "Task Dialogs support footers and can even include <a href=\"http://www.ookii.org\">hyperlinks</a>.";
dialog.FooterIcon = TaskDialogIcon.Information;
dialog.EnableHyperlinks = true;
dialog.Buttons.Add(new TaskDialogButton("A custom button"));
dialog.ShowDialog(this);
The dialog fails to open and throws the following exception:
Loaded 'C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\3.1.9\System.Drawing.Common.dll'. Skipped loading symbols. Module is optimized and the debugger option 'Just My Code' is enabled.
Exception thrown: 'System.EntryPointNotFoundException' in Ookii.Dialogs.Wpf.dll
Not sure whether it helps but by commenting out line-by-line I could pinpoint the root of the cause to TaskDialogButton
.
Activity
augustoproiete commentedon Nov 14, 2020
Thanks for reporting this @Pogodaanton. I can reproduce the error you're seeing and I'll update the documentation with the information below.
The internal error message is
To resolve this error, you'll need to add an application manifest to your .NET Core 3.1 WPF App in order to specify that your app has a dependency on
comctl32.dll
.Right click your project in Visual Studio -> Add -> New Item... and select "Application Manifest File (Windows Only)"
That will create a template that you can customize and delete the parts you don't want and/or uncomment the parts that you want. The crucial part is the
dependentAssembly
entry with the reference toMicrosoft.Windows.Common-Controls
Please, let me know if this works for you and if you find any other issue.
Pogodaanton commentedon Nov 14, 2020
Works flawlessly, thanks!