【问题标题】:The type or namespace name 'Linq' does not exist类型或命名空间名称“Linq”不存在
【发布时间】:2024-04-30 14:35:01
【问题描述】:

在摆弄 Naudio 时,我发现了 this 代码。我将其编译为:

csc.exe /reference:Naudio.dll play.cs

并得到错误:

play.cs(3,14):错误 CS0234:类型或命名空间名称“Linq”不存在于 命名空间“系统”(您是否缺少程序集引用?)

csc的版本为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.EXE

在搜索它时,我发现一个线程说我需要添加 System.core 引用,但执行以下操作:/reference:System.core.dll/reference:System.core 并不能解决问题。

【问题讨论】:

  • 使用 .NET 3.5 或 .NET 4.0 的编译器,代码将按原样编译。

标签: c# linq compiler-errors


【解决方案1】:

版本v2.0.50727 本身不支持Linq。要解决您的问题,您可以尝试以下两种方法:

  1. 如果可能,请删除对 Linq 的引用(正如 SS Kain 已建议的那样)。
  2. 如果您不希望删除 Linq,请使用更高版本。 我建议不要使用 C:\Windows\Microsoft.NET\Framework\v2.0.50727\csc.EXE 中的 csc,而是升级到最新的 .NET 版本(前提是您的部署没有问题)并尝试从那里使用 csc.exe

    我使用C:\Windows\Microsoft.NET\Framework\v4.0.30319\,这对我来说很好。

    另外请注意,如果您使用 Visual Studio 2010 命令提示符,默认情况下此路径不会添加到您的 PATH 环境变量中,因此您必须手动添加它。

    set PATH=%PATH%;C:\Windows\Microsoft.NET\Framework\v4.0.30319\

【讨论】:

  • 当我浏览并添加 C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe 然后点击添加它说 A reference to C:\Windows\..... .无法添加。在组件中未找到类型或库。谢谢
【解决方案2】:

我认为2.0.50727不支持Linq,将Linq从引用和“使用”中删除,希望代码中没有Linq语句

【讨论】:

    【解决方案3】:

    Linq 不是您正在使用的 .NET Framework 2 的一部分。请尝试更新版本。

    【讨论】:

      【解决方案4】:

      看来你应该删除

      using System.Linq;
      

      从文件 play.cs 的顶部开始,因为此参考在您正在使用的 .Net 2.0 中不可用。

      【讨论】:

        【解决方案5】:

        我引用了 System.Xml.Linq,但仍然出现错误。

        我的解决方案是:

        1. 将 .net 版本交换为 2.0
        2. 重建(失败)
        3. 将 .net 版本交换为 3.5(在我的情况下),
        4. 重建(工作)。

        【讨论】: