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

时间:2010-09-30 10:38:08

标签: linq assemblies aspnet-compiler

当我在Visual Studio 2010中打开我的Asp Net网站时,属性会说“Target Framework 3.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"/>

帮助? : - )

2 个答案:

答案 0 :(得分:5)

如果你甚至不能使用var,那表明它甚至没有使用正确版本的C#编译器。 (即使在使用C#3或C#4编译器时,你也应该能够使用var,只要你使用C#3或C#4编译器。)我会集中精力在其他任何事情之前先使用它。

您是否可能在IIS上运行但没有正确配置?可能值得关注这方面的网站配置,并可能重新运行aspnet_regiis。

答案 1 :(得分:2)

我刚刚解决了类似问题,在targetFramework="4.0"

中为compilation元素添加了web.config属性

修改后的相关片段是:

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