System.Linq命名空间丢失,即使引用System.Core.Dll也是如此

System.Linq命名空间丢失,即使引用System.Core.Dll也是如此,linq,assemblies,aspnet-compiler,Linq,Assemblies,Aspnet Compiler,当我在VisualStudio2010中打开我的Asp.Net网站时,属性会显示“TargetFramework3.5”,但是当我尝试使用Linq名称空间时,编译器会抱怨它 “找不到类型或命名空间名称‘var’(是否缺少using指令或程序集引用?) “命名空间“System”中不存在类型或命名空间名称“Linq”(是否缺少程序集引用?) 我手动引用了一些dll来修复我的问题,但仍然没有成功 <add assembly="System.Core, Version=3.5.0.0, Cult

当我在VisualStudio2010中打开我的Asp.Net网站时,属性会显示“TargetFramework3.5”,但是当我尝试使用Linq名称空间时,编译器会抱怨它

“找不到类型或命名空间名称‘var’(是否缺少using指令或程序集引用?)

“命名空间“System”中不存在类型或命名空间名称“Linq”(是否缺少程序集引用?)

我手动引用了一些dll来修复我的问题,但仍然没有成功

<add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>


帮助?:-)

如果您甚至不能使用
var
,这表明它甚至没有使用正确版本的C#编译器。(您应该能够使用
var
,即使是针对.NET2.0,只要您使用的是C#3或C#4编译器。)我会先集中精力让它工作


是否可能您正在IIS上运行,但没有正确配置?可能值得看看您的网站配置,并可能重新运行aspnet_regis。

我刚刚修复了一个类似的问题,在
web.config
中的
compilation
元素中添加了
targetFramework=“4.0”
属性

修改后的相关片段为:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Core, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
  </assemblies>
</compilation>


感谢您为我指明了正确的方向-当我查看YSOD并扩展Show Detailed Compiler输出时,我得到的是:Microsoft(R)Visual C#2005编译器版本8.00.50727.4016 for Microsoft(R)Windows(R)2005 Framework版本2.0.50727--但我对运行aspnet#u regiis犹豫不决,我怎么能确定我没有弄坏东西?这是一个实时服务器…在这里学习新东西。。。该站点的IIS.Net编译部分程序集中有大量2.0引用。(未在web.config中找到)。需要遵循Scott Hanselman的智慧,在部分中添加一些行。现在可以工作了,太好了!