Невозможно загрузить внешнюю библиотеку "libwkhtmltox.dll" при использовании DinkToPDF для преобразования PDF после публикации в качестве службы приложений в Azure. - PullRequest
1 голос
/ 10 июня 2019

Я использую библиотеку DinkToPDF для преобразования html-строки в эквивалентный PDF.Чтобы использовать эту библиотеку, мы должны импортировать встроенную библиотеку, которая называется libwkhtmltox.dll.Это работает нормально, когда я запускаю свой основной проект .net локально, однако, когда я пытаюсь опубликовать свой веб-проект как службу приложений в Azure, я получаю следующую ошибку:

Необработанное исключение: System.DllNotFoundException: Невозможно выполнитьзагрузить разделяемую библиотеку «/home/site/wwwroot/libwkhtmltox.dll» или одну из ее зависимостей.Чтобы помочь диагностировать проблемы с загрузкой, рассмотрите возможность установки переменной среды LD_DEBUG: /home/site/wwwroot/libwkhtmltox.dll: невозможно открыть общий объектный файл: нет такого файла или каталога

Я ссылался на использование библиотеки вфайл startup.cs как показано ниже.

    internal class CustomAssemblyLoadContext : AssemblyLoadContext
    {
        public IntPtr LoadUnmanagedLibrary(string absolutePath)
        {
            return LoadUnmanagedDll(absolutePath);
        }
        protected override IntPtr LoadUnmanagedDll(String unmanagedDllName)
        {
            return LoadUnmanagedDllFromPath(unmanagedDllName);
        }

        protected override Assembly Load(AssemblyName assemblyName)
        {
            throw new NotImplementedException();
        }
    }
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));
            var context = new CustomAssemblyLoadContext();
            context.LoadUnmanagedLibrary(Path.Combine(Directory.GetCurrentDirectory(), "libwkhtmltox.dll"));
         .
         .
         .
        }

Пожалуйста, помогите мне найти решение этой ошибки.

...