Пространство имен System.Linq отсутствует даже со ссылкой на System.Core.Dll - PullRequest
6 голосов
/ 30 сентября 2010

Когда я открываю свой веб-сайт Asp Net в Visual Studio 2010, свойства говорят «Target Framework 3.5», однако, когда я пытаюсь использовать пространство имен Linq, компилятор жалуется на это.

"Не удалось найти имя типа или пространства имен 'var' (отсутствует директива using или ссылка на сборку?)"

"Тип или имя пространства имен '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 ]

5 голосов
/ 30 сентября 2010

Если вы даже не можете использовать var, это говорит о том, что он даже не использует правильную версию компилятора C #.(Вы должны быть в состоянии использовать var даже при нацеливании на .NET 2.0, если вы используете компилятор C # 3 или C # 4.* Возможно ли, что вы работаете в IIS, но не настроили это должным образом?Возможно, стоит взглянуть на конфигурацию вашего сайта с этой стороны и, возможно, перезапустить aspnet_regiis.

2 голосов
/ 14 августа 2014

Я только что исправил подобную проблему, добавив атрибут 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>
...