web-dev-qa-db-ja.com

DINKTOPDF NET COREがロードできないDLLファイル)

私はPDFがHTML SQL Serverデータベースを使用して)を生成しようとしています dinktopdf library。

起動ファイルで私は追加しました

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

このラインはWebアプリケーションの起動時にエラーを与えます

DLLNONOUNDException:ロードできませんDLL "C:\ Program Files\IIS Express\libwkhtmltox.dll 'またはその依存関係の1つがあります。指定されたモジュールが見つかりませんでした。(例外:0x8007007E)

System.runtime.loader.asternalloadContext.InternalloadContext.InternalloadUnManagedDllFrompath(String UnManagedDlPath)

DLLNONOUNDException:ロードできませんDLL "C:\ Program Files\IIS Express\libwkhtmltox.dll 'またはその依存関係の1つがあります。指定されたモジュールが見つかりませんでした。(例外:0x8007007E)

あなたができる場所を親切に助けてください

3
Joseph Wambura

ASP.NETコアアプリケーションでは、現在のディレクトリを実行時に取得するためにこれを使用します。

#if DEBUG
            //windows
            string filePath = $@"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}\libwkhtmltox.dll";
#else
            //linux
            string filePath = @$"{(($@"{Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location)}/libwkhtmltox.so").Replace(@"\", @"/"))}";
#endif
            CustomAssemblyLoadContext context = new CustomAssemblyLoadContext();
            context.LoadUnmanagedLibrary(filePath);
            serviceCollection.AddSingleton(typeof(IConverter), new SynchronizedConverter(new PdfTools()));
#endregion
 _
1
Wasyster