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

5

在使用Naudio时,我发现了这段代码。我正在按照以下方式编译它:

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

您遇到了以下错误:

play.cs(3,14): error CS0234: The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?)

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

在查找解决方法时,我发现需要添加 System.core 引用,但是使用类似于 /reference:System.core.dll 或者 /reference:System.core 的命令并不能解决问题。


2
使用 .NET 3.5 或 .NET 4.0 中的编译器,代码将可以原样编译。 - Security Hound
5个回答

6

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

  1. 如果可能的话(如SS Kain所建议的那样),请删除对Linq的引用。
  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,然后点击添加时,它会显示无法添加对C:\ Windows \ ......的引用。在组件中未找到任何类型或库。谢谢。 - Zaker

4

我相信 2.0.50727 不支持 Linq,请将 Linq 从引用和 "usings" 中删除,并希望代码中没有 Linq 语句。


2

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


1

看起来你应该删除

using System.Linq;

从文件play.cs的顶部开始,由于您正在使用的.NET 2.0中没有此引用。

1
我有一个对System.Xml.Linq的引用,但仍然出现错误。
对我来说解决方案是:
  1. 将.net版本切换到2.0
  2. 重新构建(失败)
  3. 将.net版本切换到3.5(在我的情况下)
  4. 重新构建(成功)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接