VS 2010:C#Project无法打开DLL

时间:2012-11-30 15:35:32

标签: c# .net visual-studio-2010 dll reference

我在构建一个引用位于项目bin文件夹中的DLL的项目时遇到了问题,该文件夹直到昨天才构建并运行而没有问题。

我得到的错误是fatal error CS0009: Metadata file 'c:\MyProject\bin\myClient.dll' could not be opened -- 'Error importing module 'myClient.netmodule' of assembly 'c:\MyProject\bin\myClient.dll' -- The system cannot find the file specified.' Intellisense同样抱怨The type or namespace 'Api' does not exist in the namespace 'Client',因为它无法找到DLL。

如果您认为这是重复的,请告诉我,但我查看了几个类似的帖子,解决方案确实解决了我的问题。以下是一些例子:

具体来说,我尝试了以下解决方案(及其组合):

  • 清理并重建了我的项目。
  • 确保目标框架不是.NET的“客户端配置文件”版本
  • 确认已将dll添加为项目参考
  • 删除并重新添加项目参考
  • 验证项目是否在Visual Studio
  • 的“参考”部分中显示DLL
  • 修复.NET
  • 验证了DLL的位置(它位于本地项目的bin文件夹中,由错误指定)
  • 尝试过其他版本的.NET
  • 关闭并重新启动Visual Studio
  • 重启我的机器
  • 已确认“使用”声明
  • 周围没有隐藏字符
  • 删除了自上次工作构建以来的所有代码更改
  • 已验证配置管理器中的设置,包括已选中“构建”

调用DLL的项目是一个小型类库,它驻留在另一个小项目(控制台应用程序)的解决方案中。 DLL是一个外部DLL,我已经在这个项目/解决方案中成功使用了几个星期。无论我是从解决方案构建项目还是单独构建项目,都会出现错误。

有关可能发生的事情的任何想法?

2 个答案:

答案 0 :(得分:1)

您是否意外地在项目中包含了bin文件夹?如果是,那可能会导致问题。您不能在项目中包含bin文件夹,因为VS将创建bin文件夹。如果您不小心在项目中包含bin文件夹,则bin项目将设置为Copy to output,在编译时,文件将被删除并由Visual Studio复制到输出,从而触发某些文件丢失的奇怪行为。

希望得到这个帮助

答案 1 :(得分:0)

嗯,我不确定这里发生了什么,但最终解决了这个问题:

一个老式的删除每个文件,并从头开始从这些文件重建项目。我对一些回复给出了+1,因为它们很有用,而且因为乔纳森伍德建议的那些可能有一些混乱的参考。