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

时间:2011-04-06 14:24:20

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

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

  

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

     

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

     

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

     

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

我该如何解决?

17 个答案:

答案 0 :(得分:570)

我遇到了同样的问题,我必须将所有项目的“目标框架”设置为相同。然后它建好了。在项目菜单上,单击ProjectName属性。单击编译选项卡。单击“高级编译选项”。在目标框架中,选择您想要的框架。

答案 1 :(得分:39)

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

答案 2 :(得分:21)

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

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

Source

答案 3 :(得分:20)

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

解决方案资源管理器 - >参考文献 - >右键单击System.Data.Linq - >复制本地(真实)

答案 4 :(得分:18)

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

答案 5 :(得分:12)

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

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

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

答案 6 :(得分:11)

我有same problem并尝试了以上所有内容但没有任何成功,然后我发现它是什么:

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

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

答案 7 :(得分:7)

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

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

答案 8 :(得分:5)

对于任何有链接文件的人:我遇到了这个问题并且正在使用silverlight,并且抛出此错误的违规文件是一个链接文件。

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

答案 9 :(得分:1)

我在使用Visual Studio的Git集成来管理项目时遇到了这个问题。出于某种原因,Windows Phone 8项目在针对x86时可以正常编译,但是当我将其设置为目标ARM时,它将无法编译,并显示错误,指示"广告"并没有存在于Microsoft名称空间中。

我最终通过删除Microsoft.Advertising。*。dll引用并再次添加来解决此问题。

答案 10 :(得分:1)

如果所有其他方法都失败了,例如确保目标框架是相同的,并且您正在处理VS2010中的WPF类库,只需重新启动Visual Studio即可。这样做对我来说。

答案 11 :(得分:1)

我正在引用Microsoft.CommerceServer.Runtime.Orders并遇到此错误。这个项目很旧,有Target framework .NET 2.0。在输出中我有这个错误:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: The primary reference "Microsoft.CommerceServer.Runtime" could not be resolved because it has an indirect dependency on the framework assembly "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "Microsoft.CommerceServer.Runtime" or retarget your application to a framework version which contains "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

我只是将目标框架更改为.NET 4,现在它已构建。

答案 12 :(得分:1)

在我的情况下,项目没有变化,它只是停止编译并且“类型或命名空间名称XXX不存在”,并且在抱怨类本身的智能感知器/类的intellisense工作正常。 问题确实在参考文献中!

重现的步骤:

  1. 解决方案有ProjectA,ProjectB。 ProjectA引用第三方log4net并标记为Copy local: true。 ProjectB引用ProjectA并且没有引用log4net。 解决方案编译良好。

  2. ProjectA中的更改:log4net的引用属性为Copy local: false

  3. 清理bin和obj文件夹。
  4. 编译时,ProjectA编译,但ProjectB抱怨没有找到ProjectA名称空间。
  5. This is because ProjectB bin文件夹缺少第三方库 (log4net in my case)!

    在这种情况下,解决方案将是 -

    1. 确保第三方库引用设置为Copy local: true
    2. 在引用路径下的项目属性中添加此类库的路径。

答案 13 :(得分:0)

我最近需要进行系统还原,这导致我的几个文件发生变化/消失,这是我自恢复以来一直在努力的。其中一些是DLL文件。我使用Source Control来检索整个项目,但我仍然遇到与上面类似的问题。我发现this answer描述了您可能需要删除DLL并对其进行读取以修复错误。在我的场景中就是这种情况。

删除WebMatrix.WebData并将其读取以及添加WebMatrix.Data修复了The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ...的错误。

答案 14 :(得分:0)

我收到了一条非常类似的错误消息,该错误消息是由于无意中在我的解决方案的另一个项目中复制了一个类。删除重复项修复了问题

答案 15 :(得分:0)

我遇到了同样的错误。在我发现我的项目有错误的程序集名称(我从不同的项目中复制文件并且名称空间有点混淆)之后,并将其更改回来,项目编译得很好。

答案 16 :(得分:-3)

如果您受源代码管理,请删除.refresh.dll文件。然后重建。它应该工作。 这对我有用