不能使用外部DLL:FileNotFoundException

问题描述:

我有2个项目。 第一个只生成一个DLL。不能使用外部DLL:FileNotFoundException

第二个需要第一个DLL。 但是当我打电话从DLL的方法,我有一个FileNotFoundException异常,此消息:

BDD,版本= 1.0.0.0,文化=中立,公钥=空

我敢肯定的是,文件存在。 我哪里错了?

+0

您是否在试图使用它的项目中添加了DLL作为参考?或者至少将DLL复制到与编译的可执行文件相同的目录中? – 2011-04-11 07:56:50

+3

运行它时,project1.dll是否与project2.exe位于同一文件夹中? – Twelve47 2011-04-11 07:57:34

+0

项目/大会的名称是什么? – 2011-04-11 07:59:19

同意Kieren(+1)。也许它找到你的DLL,但它需要另一个无法找到的依赖DLL。或者是有一个签名的问题(也许你正在寻找另一个DLL版本,等...) 要打开融合登录(你必须创建几个FO注册表项): Set LogFailures to 0/1 to disable/enable

BTW,融合是包含加载程序集的逻辑的DLL(探查本地路径和子文件夹(如果指定),查看GAC,...)。运行完可执行文件后,您会发现一个日志,详细说明CLR在加载引用程序集时发现的问题(忽略NativeImage日志,仅检查默认日志)。

简短回答:该DLL需要与EXE位于同一目录中。

这是这种情况?

你能给予充分的消息 - 和:

请记住,在FileNotFoundException可能是引用的DLL的依赖,不只是引用DLL本身。

如果DLL确实存在,您可能需要打开汇编绑定日志(Fusion日志)以查看发生了什么。

+0

我想你需要提供如何打开该日志的信息。 – 2011-04-11 08:03:15

+0

我将DLL导入到VisualStudio中,没有问题。 但是,当我从DLL调用方法时,我收到filenotfound ... – g123k 2011-04-11 08:04:28

+0

你不能'导入'一个DLL,你的意思是添加一个引用?这并不意味着太多。也许你可以回答人们所问的问题 - 完全错误是什么,与可执行文件在同一目录中的DLL是什么? – 2011-04-11 08:06:06