类型或命名空间名称不存在

Att*_*lah 301 .net c# visual-studio-2010 visual-studio

我有一个使用Visual Studio 2010构建的WCF数据服务项目,该项目运行正常.突然间,它不再编译了.它给了我这样的消息:

错误7名称空间'System.Data'中不存在类型或命名空间名称'Services'(您是否缺少程序集引用?)C:\ U ... s\Visual Studio 2010\Projects ...\DataService. cs ......

错误8命名空间"系统"中不存在类型或命名空间名称"Linq"(您是否缺少程序集引用?)DependencyResolver.cs 3 14

错误10名称空间"System.ServiceModel"中不存在类型或命名空间名称"Web"(您是否缺少程序集引用?)

错误12找不到类型或命名空间名称"DataService"(您是否缺少using指令或程序集引用?)

我该如何解决?

Nat*_*oop 599

我遇到了同样的问题,我不得不将所有项目的"目标框架"设置为相同.然后它建好了.在项目菜单上,单击ProjectName属性.单击编译选项卡.单击"高级编译选项".在目标框架中,选择所需的框架.

  • +1给这个.可怕的误导性错误信息.可能节省了我几个小时试图解决它.嘿微软如何"无法导入名称空间BLAH,因为BLAH是一个不兼容的版本",但后来我猜它会抢夺内森的184个upvotes. (52认同)
  • 我通过右键单击解决方案资源管理器中的项目并选择属性来设置"目标框架".目标框架应在默认的应用程序选项卡中可见. (10认同)
  • @jaminator在某些情况下,这是一个解决方案.至少在我的.出于某种原因,我的项目拒绝接受来自同一解决方案的命名空间.问题是控制台应用程序是针对客户端配置文件. (4认同)
  • 在 Visual Studio 中从“错误列表”选项卡切换到“输出”选项卡显示了我的实际错误(实际上是导致错误的警告)。实际上缺少对其他库的引用(在我的情况下为 Microsoft.Bcl)。 (4认同)
  • 也适合我.当我添加WPF项目(.NET 4 Client Profile)和类库项目(.NET 4)引用时发生.谢谢一堆! (3认同)
  • 对于我们无法更改项目的目标框架的情况,是否有解决方法? (2认同)

小智 41

我遇到了System.Linq无法识别的问题.该using声明有一个红色的波浪形等等.我解决它的方法是将我的网站更改为目标dotnet 3.5,然后切换回原始目标框架(在我的情况下为4.0).

  • 谢谢.这个话题被关闭是荒谬的,因为在浪费了一个小时试图弄清楚为什么我的功能和参考突然停止工作之后,这也帮助了我.对我来说失败的引用是system.management.automation.dll (3认同)
  • 也为我工作!但是我不得不做两次...去吧! (2认同)

Kiw*_*ige 25

我发现这是由于我具有与类名(MyWorld.MyWorld = Namespace.ClassName)相同的命名空间名称.

将名称空间更改为与您的类名称不同的名称,这将编译.

资源

  • 要解决这个问题,只需将`Windows.Whatever`添加到`global ::`前面 (5认同)

Mod*_*ury 20

当我尝试使用LINQ to SQL时,我遇到了与ASP.NET MVC站点相同的问题.我通过以下方式修复了问题

Solution Explorer - > References - >右键单击System.Data.Linq - > Copy Local(True)


小智 18

检查您的目标框架是否具有相同的.NET版本.我有同样的问题,我的班级.NET是3.5,网络解决方案有4.5.我同步了那些,然后它工作:)

  • 这只是重复在[之前的答案](http://stackoverflow.com/a/7155510/1864167)中提出和解释的观点,该点在此之前几个月发布 (11认同)

小智 12

我遇到过与System.Data.SQLite相同的问题.问题的根源是您使用的dll应该与您的项目具有相同的.NET版本.

例如,如果您使用(在我的情况下)SQLite for .NET 4.5,您的平台目标也应该是.NET 4.5.

您可以通过以下方式找到平台目标:项目>(项目名称)属性>构建.


Gra*_*ush 11

我有同样的问题并尝试了以上所有但没有任何成功,然后我发现它是什么:

我在我的一个项目中创建了一个名为"System"的文件夹,然后在其中创建了一个类.问题似乎源于在创建.cs文件时使用名为"System"的命名空间,即使它位于"MyProject.System"的命名空间中.

回顾过去,我可以理解为什么会导致问题.起初它真的让我很难过,因为错误消息最初似乎与问题无关.

  • 我在MSDN上发布了一些东西,但是MS说它不是一个bug.我不会与此争论,但我希望他们能理解它是如何引起问题的. (2认同)

小智 7

在我的情况下,问题发生了,因为我创建的类具有干扰现有类的命名空间.新的类A具有命名空间zz.yy.xx(错误地).对另一个名称空间yy.xx中的对象的引用未在类A或其名称为zz的其他类中进行编译.

我将类A的名称空间更改为yy.xx,它应该是,它开始工作.


Mar*_*rio 5

对于任何链接文件:我有这个问题,并使用silverlight和抛出此错误的违规文件是一个链接文件.

编译器的错误告诉我错误发生在文件所在的项目中.最终错误不在该项目中,它发生在包含链接文件的项目中.该项目缺少参考.