2

每当我的应用程序尝试使用 DLL 中存在的函数时,我都会收到与可执行文件位于同一文件夹中的 .dll 的 System.DllNotFoundException。奇怪的是它只发生在一个用户的 PC 上。它在我的开发 PC 上运行良好,并且在我尝试过的一台非开发 PC 上运行良好。此外,文件夹中还有其他 DLL被正确找到和使用。有问题的 DLL 是一个本机库,我的应用程序通过另一个 DLL 引用它,该 DLL 是本机库的 ac# 包装器。

我最初的直觉是,这个 DLL 必须引用一些其他库,而这些库在有问题的 PC 上不存在,但我无法想象这台 PC 可能缺少其他非开发 PC 所具有的库。

所以我的问题是:有没有办法确定给定 DLL 文件的依赖关系?请记住,有问题的 DLL 是本机库(即不是托管代码),我无权访问它的源代码。如果事实证明没有缺少依赖项,还有什么可能导致这样的问题?

4

2 回答 2

4

对于非托管 dll,您可以使用Dependency Walker查找依赖项。

于 2011-09-12T20:21:10.543 回答
0

我建议先使用 ILSpy 打开 dll 并查看其依赖项。

于 2011-09-12T20:21:06.153 回答