2009-08-19 4 views
8

Мы получаем сообщение об ошибке при развертывании проекта на одном из серверов нашего клиента. Система отлично работает в нашей локальной среде разработки и промежуточной среде. Ошибка:Тип или имя пространства имен «Linq» не существует в пространстве имен «System.Data»

типа или пространства имен имя «Linq» не существует в пространстве имен «» System.Data

Мы сделали очевидные проверки: - У нас есть ссылки в web.config для System.Data.Linq, System.Core, System.Linq и т. д. - Целевая структура нашего проекта: 3.5 - Мы подтвердили, что версия ASP.NET в IIS на сервере клиента 2.0.50727 - У нас есть что сервер имеет установленную фреймворк 3.5 и содержит DLL System.Data.Linq в папке Windows/assemblylies.

Любые другие идеи?

+1

После установки пакетов обновления (за Орион ниже) и после нескольких перезагрузок он начал работать. Все еще не знаю, какова была коренная проблема, но теперь она работает. – Keith

ответ

16

У меня была такая же ошибка компиляции при создании проекта из сценариев, в то время как Visual Studio 2010 строит тот же самый проект. Когда я попытался добавить ссылку System.Core из VS2010, он вернулся с ошибкой, указав, что ссылка задана неявно и не добавит ссылку.

Решение для меня заключалось в том, чтобы добавить следующую ссылку вручную в файл csproj. Обратите внимание, целевая структура Справочной является явно установлен в 3.5 (это в верхней части целевой структуры проекта, установленным на 3.5):

<Reference Include="System.Core"> 
    <RequiredTargetFramework>3.5</RequiredTargetFramework> 
</Reference> 
+0

Добавление ссылки на System.Core работало для нас в проекте SQL CLR, преобразованном в проект SQL Data Tools. – Seth

+0

У меня есть эта проблема, и System.Core уже ссылается. –

+0

@HotLicks это ссылка явно, как указано выше в вашем файле csproj? Можете ли вы открыть файл .csproj и проверить? – Ashby

2

От here: «Вы получите эту ошибку, если у вас нет ссылки« System.Core.dll »(сборка, содержащая основные LINQ API). Тем не менее, все шаблоны по умолчанию должны включать эту ссылку, когда вы нацеливаете .NET3.5. '

+0

Из моего исходного сообщения: «У нас есть ссылки в файле web.config для System.Data.Linq, System.Core, System.Linq и т. Д.» – Keith

2

У меня была аналогичная проблема разработки веб-сайта в Visual Web Developer 2010 с .NET 4.0 ,

БВ может найти пространство имен "System.Linq" для файлов в App_Code, но не файлы в других каталогах . Удивительно, но факт.

«Проект» был открыт с использованием «Открытого веб-сайта», поэтому не было файла .csproj.

Копирование:

C: \ Program Files \ Reference Сборки \ Microsoft \ Framework \ .NETFramework \ v4.0 \ System.Core.dll

на сайт бен каталог вызвало пространство имен для VWD для файлов в других каталогах.

Надеюсь, это поможет кому-то.

0

Я знаю, что на вопрос уже дан ответ, но только для того, чтобы дать понять, почему в Visual Studio мы получаем Build Succeeded и сталкиваемся с проблемами при попытке построить SVN или какой-либо другой репозиторий?

Причина: На это ссылается IDE, когда она вызывает систему сборки, но не сама MSBuild.

Но после добавления ссылки как Ashby сказал выше, это, безусловно, будет работать нормально. Эта проблема все еще встречается даже во время Visual Studio 2012, и, как я знал об этом, делал это, и все начинало работать нормально.

С уважением,

Варуна Shringarpure

0

У меня была такая же проблема, но другой первопричину.

Я изменил объявление пространства имен в файле designer.cs dbml. Всякий раз, когда я добавляю новый конструктор через конструктор, Visual Studio вернула объявление пространства имен, а сборка не удалась.

Простое изменение пространства имен на то, что должно быть исправлено.

Смежные вопросы

 Смежные вопросы