我有一个用Visual Studio 2010构建的WCF数据服务项目,运行良好。突然,它不再编译了。它给我的信息是:

Error 7 The type or namespace name 'Services' does not exist in the namespace 'System.Data' (are you missing an assembly reference?) C:\U...s\Visual Studio 2010\Projects...\DataService.cs ... Error 8 The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?) DependencyResolver.cs 3 14 Error 10 The type or namespace name 'Web' does not exist in the namespace 'System.ServiceModel' (are you missing an assembly reference?) Error 12 The type or namespace name 'DataService' could not be found (are you missing a using directive or an assembly reference?)

我该怎么解决呢?


当前回答

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

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

其他回答

我得到了一个非常类似的错误消息,这是由于无意中在我的解决方案的另一个项目中创建了一个类的副本而引起的。删除副本解决了这个问题

我也遇到了同样的问题,尝试了以上所有方法都没有成功,然后我发现了它是什么:

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

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

我在使用Visual Studio的Git集成管理项目时遇到了这个问题。出于某种原因,Windows Phone 8项目在针对x86时编译得很好,但当我将其设置为针对ARM时,它会编译失败,并提示“Advertising”不存在于Microsoft命名空间中。

我最终通过删除Microsoft.Advertising.*.dll引用并重新添加它来解决这个问题。

如果所有这些都失败了,比如确保目标框架是相同的,并且你在VS2010中处理WPF类库,只需重新启动Visual Studio。这对我很有帮助。

我的系统出了点问题。Linq没有被认出来。using语句有一个红色的、弯弯曲曲的等等。我解决这个问题的方法是将我的网站更改为目标dotnet 3.5,然后切换回原来的目标框架(在我的情况下是4.0)。