0

我们有 .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;

  • 以管理员身份运行。

结果是一样的。

有什么想法吗,伙计们?

提前致谢!

4

1 回答 1

0

不要将 DLL 放在系统目录中。你不应该把文件放在那里。将 DLL 放在与可执行文件相同的目录中。

如果您这样做并且系统报告DllNotFoundException这意味着找不到 DLL 的依赖项之一。接下来,您需要找出依赖关系是什么,并确保它们都得到满足。

您可以使用 Dependency Viewer 之类的工具来检查依赖关系,但实际上最好的方法是访问源代码。如果它是第三方库,则可以是库的文档,或者如果您自己构建了 DLL,则直接来自源代码和编译选项。

于 2015-11-19T21:07:18.307 回答