【问题标题】:The type or namespace name 'Linq' does not exist in the namespace 'System.Data'命名空间“System.Data”中不存在类型或命名空间名称“Linq”
【发布时间】:2009-08-19 20:34:38
【问题描述】:

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

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

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

还有其他想法吗?

【问题讨论】:

  • 安装服务包后(根据下面的 Orion),并在几次重新启动后,它开始工作。仍然不确定根本问题是什么,但它现在可以工作了。

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


【解决方案1】:

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

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

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

【讨论】:

  • 添加对 System.Core 的引用为我们在 SQL CLR 项目中工作,该项目已转换为 SQL Data Tools 项目。
  • @HotLicks 在您的 csproj 文件中是否像上面那样明确引用?你能打开你的 .csproj 文件并检查一下吗?
  • 这解决了我的问题。在 Visual Studio 2012 中创建了一个项目,该项目必须作为 Visual Studio 2008 解决方案的一部分。
  • 试试this,类似问题
【解决方案2】:

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

【讨论】:

  • 来自我的原始帖子:“我们在 web.config 中有 System.Data.Linq、System.Core、System.Linq 等的引用。”
【解决方案3】:

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

VWD可以App_Code中的文件找到命名空间“System.Linq”,但不能其他目录中的文件。奇怪但真实。

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

复制:

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

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

希望它对某人有所帮助。

【讨论】:

    【解决方案4】:

    我知道这个问题已经得到解答,但只是为了澄清一下,为什么在 Visual Studio 中,我们得到 Build Succeeded 并在尝试在 SVN 或其他一些存储库中构建时遇到问题?

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

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

    问候,

    Varun Shringarpure

    【讨论】:

      【解决方案5】:

      我遇到了同样的问题,但根本原因不同。

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-05-18
        • 2012-04-15
        • 2010-11-19
        • 1970-01-01
        • 2012-02-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多