每当我的应用程序尝试使用 DLL 中存在的函数时,我都会收到与可执行文件位于同一文件夹中的 .dll 的 System.DllNotFoundException。奇怪的是它只发生在一个用户的 PC 上。它在我的开发 PC 上运行良好,并且在我尝试过的一台非开发 PC 上运行良好。此外,文件夹中还有其他 DLL被正确找到和使用。有问题的 DLL 是一个本机库,我的应用程序通过另一个 DLL 引用它,该 DLL 是本机库的 ac# 包装器。
我最初的直觉是,这个 DLL 必须引用一些其他库,而这些库在有问题的 PC 上不存在,但我无法想象这台 PC 可能缺少其他非开发 PC 所具有的库。
所以我的问题是:有没有办法确定给定 DLL 文件的依赖关系?请记住,有问题的 DLL 是本机库(即不是托管代码),我无权访问它的源代码。如果事实证明没有缺少依赖项,还有什么可能导致这样的问题?