对于当前文件夹中的.dll的DllNotFoundException

时间:2011-09-12 20:17:49

标签: c# .net dll dependencies dllnotfoundexception

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

我最初的直觉是这个DLL必须引用一些其他库,这个库在有问题的PC上不存在,但是我无法想象这台PC可能会丢失哪个库,而另一台非开发PC却没有。< / p>

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

2 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分:0)

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