我有2个项目。第一个只是生成一个DLL。
第二个需要第一个 DLL。但是当我从 DLL 调用一个方法时,我有一个 FileNotFoundException,并带有以下消息:
BDD,版本=1.0.0.0,文化=中性,PublicKeyToken=null
我确定该文件存在。我哪里错了?
我有2个项目。第一个只是生成一个DLL。
第二个需要第一个 DLL。但是当我从 DLL 调用一个方法时,我有一个 FileNotFoundException,并带有以下消息:
BDD,版本=1.0.0.0,文化=中性,PublicKeyToken=null
我确定该文件存在。我哪里错了?
同意基伦(+1)。也许它正在找到您的 DLL,但它需要另一个无法找到的依赖 DLL。或者是否存在签名问题(也许您正在寻找另一个 DLL 版本等...)打开融合日志(您必须创建几个注册表项):
顺便说一句,fusion 是包含加载程序集的逻辑的 DLL(如果指定,则探测本地路径和子文件夹,查看 GAC,...)。运行您的可执行文件后,您将找到一个日志,详细说明 CLR 在加载引用的程序集时发现的问题(忽略 NativeImage 日志,仅检查默认日志)。
您能否提供完整的信息 - 并且:
请记住,这FileNotFoundException
可能是引用的 DLL 的依赖项,而不仅仅是引用的 DLL 本身。
如果 DLL 确实存在,您可能想要打开程序集绑定日志(Fusion 日志)以查看发生了什么。
简短的回答:DLL 需要与 EXE 位于同一目录中。
是这样吗?