DinkToPdf Net Core не может загружать файлы DLL - PullRequest
0 голосов
/ 30 марта 2019

Я пытаюсь сгенерировать PDF из базы данных html sql server, используя библиотеку DinkToPdf .

В файле запуска я добавил

var context = new CustomAssemblyLoadContext();
context.LoadUnmanagedLibrary(Path.Combine(Directory.GetCurrentDirectory(), "libwkhtmltox.dll"));

В строке выдается ошибка при запуске веб-приложения

DllNotFoundException: Невозможно загрузить DLL 'C: \ Program Files \ IIS Express \ libwkhtmltox.dll' или одну из ее зависимостей: Указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

System.Runtime.Loader.AssemblyLoadContext.InternalLoadUnmanagedDllFromPath (строка unmanagedDllPath)

DllNotFoundException: Невозможно загрузить DLL 'C: \ Program Files \ IIS Express \ libwkhtmltox.dll' или одну из ее зависимостей: Указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Пожалуйста, помогите, где вы можете

Ответы [ 2 ]

1 голос
/ 21 июня 2019

На тот случай, если у кого-то еще возникла такая же проблема, я смог ее решить, установив Microsoft Visual C ++ 2015 Redistributable.

0 голосов
/ 30 марта 2019

Я нашел несколько обходных путей. Они не идеальны, но стоит попробовать, и они действительно помогли, и я смог сгенерировать PDF-файлы с SQl Server. Я положил файлы .dll в следующую папку, и она заработала.

C: \ Program Files \ IIS Express

и загруженные файлы .dll с

Path.Combine(Directory.GetCurrentDirectory(), "libwkhtmltox.dll");

Другой путь, которым я пошел по всему Пути

context.LoadUnmanagedLibrary(Path.GetFullPath(@"C:\Users\User\source\repos\WebSolution\WebApp\libwkhtmltox.dll"));

Они оба работали. Тем не менее, я призываю разработчиков Net Core очень хорошо поработать над GetCurrentDir. Или метод загрузки из папки проекта или решения

Path.Combine(Directory.GetCurrentDirectory(), "libwkhtmltox.dll");
...