DllNotFoundException, but DLL is there

こ雲淡風輕ζ 提交于 2019-12-17 16:43:08

问题


So I'm using an SDK for a hardware random number generator which provides a dll called PsyREG.dll for interacting with it, as well as some c# source for using the methods from the dll.

It has worked in the past, but somehow it has stopped working. My hands are a bit tied as I don't actually have access to the device in question at the moment, so I can't try a lot of things...

However, here's the weird thing. The dll is there, the same place it's always been. Ahd in fact File.Exists("PsyREG.dll") returns true, and I've double checked and that's the exact same way the provided c# source imports it, e.g. [DllImport("PsyREG.dll")].

Any ideas?


回答1:


It is probably this dll has some dependencies that they arent registred or arent in the same folder of your application.




回答2:


Open DLL on the problematic system in http://www.dependencywalker.com/




回答3:


Perhaps you should check to see if you're expecting a specific product version of the dll, and make sure that the product versions still match up correctly.




回答4:


I ran into this problem and solved with the following:

There's a dependency on msvcr90.dll if you compile under /MD. Try compiling the code with /MT instead.

Project properties > C/C++ > Code Generation > Runtime Library: /MT




回答5:


I was dealing with the same exception with regards to one of my DLL's (let's call it A). C# was crashing because it claimed it couldn't find this DLL (A) (while it was there in the same folder as the executable).

Turned out that the issue was caused by A having dependency on another DLL (call it B). B was not in the path so A couldn't load it when it needed it. Since B needed a whole bunch of other DLL's, the solution was to add B's directory to the PATH environment variable.

It's interesting how C# crashes with the error saying that A is not found when in fact B was not found...



来源:https://stackoverflow.com/questions/1246486/dllnotfoundexception-but-dll-is-there

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!