命名空间“System.Data”中不存在类型或命名空间名称“Linq”

时间:2009-08-19 20:34:39

标签: asp.net linq linq-to-sql

将项目部署到我们客户的某个服务器时,我们遇到了错误。该系统在我们的本地开发和登台环境中运行良好。错误是:

名称空间'System.Data'

中不存在类型或命名空间名称“Linq”

我们做了明显的检查: - 我们在web.config中有System.Data.Linq,System.Core,System.Linq等的引用。 - 我们项目的目标框架是3.5 - 我们已确认客户端服务器上IIS中的ASP.NET版本为2.0.50727 - 我们已确认服务器已安装框架3.5并包含Windows / assemblies文件夹中的System.Data.Linq DLL。

还有其他想法吗?

5 个答案:

答案 0 :(得分:16)

从脚本构建项目时遇到了相同的编译错误,而Visual Studio 2010正在构建相同的项目。当我尝试从VS2010中添加System.Core引用时,它返回时出现错误,指出隐式设置了引用,并且不会添加引用。

我的解决方案是手动将以下引用添加到csproj文件中。请注意,引用的目标框架显式设置为3.5(这是在项目的目标框架设置为3.5之上):

<Reference Include="System.Core">
  <RequiredTargetFramework>3.5</RequiredTargetFramework>
</Reference>

答案 1 :(得分:2)

来自here:'如果您没有引用“System.Core.dll”(包含核心LINQ API的程序集),您将收到此错误。但是,当您定位.NET3.5时,所有默认模板都应包含此引用。'

答案 2 :(得分:2)

在使用.NET 4.0在Visual Web Developer 2010中开发网站时遇到了类似的问题。

VWD 可以为App_Code 中的文件找到名称空间“System.Linq”,但其他目录中的文件 < / strong>即可。奇怪但真实。

使用“打开网站”打开“项目”,因此没有.csproj文件。

复制:

  

C:\ Program Files \ Reference Assemblies \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.Core.dll

到网站 bin 目录导致VWD为其他目录中的文件找到了名称空间。

希望它有所帮助。

答案 3 :(得分:0)

我知道这个问题已经回答了,但是为了说明问题,为什么在Visual Studio中,我们会在尝试构建SVN或其他存储库时获得Build Succeeded并遇到问题?

原因:IDE在调用构建系统时引用它,而不是由MSBuild本身引用。

但是在添加了上面提到的 Ashby 之后,它肯定会正常工作。 即使在Visual Studio 2012期间,这个问题仍然会发生,并且正如我所知道的那样,做到了,一切都开始正常。

此致

Varun Shringarpure

答案 4 :(得分:0)

我有同样的问题,但是根本原因不同。

我更改了dbml的designer.cs文件中的名称空间声明。每当我通过设计器添加新对象时,Visual Studio都会恢复名称空间声明,并且构建失败。

只需将命名空间更改回应该解决的问题。