Обновить до 4.0 Framework, затем понизить, теперь не можете найти пространство имен Linq? - PullRequest
2 голосов
/ 19 апреля 2010

Я только что обновился с VS2008 до VS2010. В процессе я позволил ему обновить мои DLL до 4.0. Я решил, что это не очень хорошая идея, и теперь я откатился назад.

В VS2010 все работает нормально, но когда он попадает на мой CI-сервер (CruiseControl.Net), я получаю сообщение об ошибке:

The type or namespace name 'Linq' does not exist in the namespace 'System' (are you missing an assembly reference?

3.5 находится на сервере, а другие проекты, использующие 3.5, работают нормально, поэтому я не думаю, что это проблема фреймворка.

У кого-нибудь есть намеки?

Ответы [ 2 ]

6 голосов
/ 19 апреля 2010

Убедитесь, что у вас есть ссылка на System.Core.dll.

5 голосов
/ 19 апреля 2010

У меня есть ссылка на System.Core, но оказалось, что для одного из моих проектов, когда я понизил версию, он не добавил этот бит обратно в файл моего проекта:

<Reference Include="System.Core">
  <RequiredTargetFramework>3.5</RequiredTargetFramework>
  <Private>False</Private>
</Reference>

Ключевой частью является RequiredTargetFramework. Я узнал об этом, потому что не был найден не только Linq, но и атрибуты Func <> и Extension метода.

Было всего 3,5 вещи, которые отсутствовали.

...