我们有.NET应用程序,它通过[DllImport]使用C ++库。除了3台计算机外,它在许多计算机(数千个客户)上运行良好。所有这些都安装了Windows 10(其他Windows 10平台工作正常)。
例外是:
System.DllNotFoundException: Unable to load DLL 'Helper.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)
此dll与主可执行文件位于同一文件夹中。 已经采取了哪些措施来解决问题:
将DLL放入system32文件夹;
安装了不同版本的vc redist;
结果是一样的。
任何想法,伙计们?
提前致谢!
答案 0 :(得分:0)
不要将DLL放在系统目录中。你不应该把文件放在那里。将DLL放在与可执行文件相同的目录中。
如果您这样做并且系统报告DllNotFoundException
,则表示无法找到DLL的某个依赖项。接下来,您需要找出依赖项是什么,并确保它们都得到满足。
您可以使用Dependency Viewer之类的工具来检查依赖关系,但实际上最好的方法是转到源代码。如果它是第三方库,则可以是库的文档,如果您自己构建了DLL,则可以直接从源代码和编译选项中获取。