我有一个用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?)

我该怎么解决呢?


当前回答

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

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

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

其他回答

我也犯过同样的错误。在我发现我的项目有错误的程序集名称(我从另一个项目复制了文件,名称空间有点混乱),并将其更改回来后,项目编译得很好。

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

检查你的目标框架是否有相同的。net版本。我也遇到过同样的问题,我的课程。net是3.5,web解决方案是4.5。我同步了这些,然后它工作了:)

在我的例子中,问题的发生是因为我创建的类有一个干扰现有类的名称空间。新类A有命名空间zz.yy.xx(错误地)。对另一个命名空间yy中的对象的引用。xx没有在类A或命名空间为zz的其他类中编译。

我将A类的命名空间修改为yy。Xx,它应该是,而且它开始工作了。

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

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