【发布时间】:2018-09-25 18:07:45
【问题描述】:
我引用的是 NuGet 包 ABCpdf,它提供了一个托管 DLL abcpdf.dll 和四对本机 DLL,采用 x86 和 x64 类型:
packages\ABCpdf\11.2.2\build\PrintHook64.dll
packages\ABCpdf\11.2.2\build\3DGlue11-32.dll
packages\ABCpdf\11.2.2\build\3DGlue11-64.dll
packages\ABCpdf\11.2.2\build\ABCpdf11-32.dll
packages\ABCpdf\11.2.2\build\ABCpdf11-64.dll
packages\ABCpdf\11.2.2\build\ChakraCore32.dll
packages\ABCpdf\11.2.2\build\ChakraCore64.dll
packages\ABCpdf\11.2.2\build\PrintHook32.dll
在需要其中一个或多个 DLL 的 LinqPad 中运行的查询会失败,除非我按照 LINQPad 作者 @joe-albahari 的建议 here 手动将所有这些 DLL 复制到 %PROGRAMFILES%\LINQPad5。
那是在 2016 年。2018 年有没有更自动化的方式?
我尝试在查询属性中添加对本机 DLL 的引用;会产生这个错误
CS0009 Metadata file '..\ABCpdf11-64.dll' could not be opened -- PE image doesn't contain managed metadata.
我尝试使用 将所有非框架引用复制到单个本地文件夹 选项,听起来就像是专为这种情况而设计的。不幸的是,这也不起作用。还是有这个错误
DllNotFoundException: Unable to load DLL 'ABCpdf11-32.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
【问题讨论】:
标签: linqpad