Тип или имя пространства имен не существует

У меня есть проект службы данных WCF, созданный с помощью Visual Studio 2010, который отлично работает. Внезапно он больше не компилировался. Это давало мне такие сообщения, как:

Ошибка 7 Тип или имя пространства имен "Сервисы" не существует в пространстве имен "System.Data" (вам не хватает ссылки на сборку?) C:\U... s\Visual Studio 2010\Projects...\DataService.cs...

Ошибка 8 Тип или имя пространства имен Linq не существует в пространстве имен "Система" (вам не хватает ссылки на сборку?) DependencyResolver.cs 3 14

Ошибка 10 Тип или имя пространства имен "Веб" не существует в пространстве имен "System.ServiceModel" (вам не хватает ссылки на сборку?)

Ошибка 12 Не удалось найти имя типа или пространства имен DataService (вам не хватает директивы using или ссылки на сборку?)

Как я могу это исправить?

Ответ 1

У меня была та же проблема, и мне пришлось установить "Целевая структура" всех проектов одинаковыми. Тогда он построил отлично. В меню "Проект" выберите "Свойства проекта". Перейдите на вкладку компиляции. Нажмите "Дополнительные параметры компиляции". В целевой структуре выберите нужный фреймворк.

Ответ 2

У меня возникла проблема с тем, что System.Linq не распознается. Оператор using имел красную squiggly и т.д. То, как я решил, это изменить мой сайт на целевой dotnet 3.5, а затем вернуться к исходной целевой структуре (в моем случае 4.0).

Ответ 3

Я столкнулся с той же проблемой с ASP.NET MVC, когда я попытался использовать LINQ to SQL. Я исправил проблему:

Обозреватель решений → Ссылки → Щелкните правой кнопкой мыши по System.Data.Linq → Скопировать локальный (True)

Ответ 4

Убедитесь, что ваша целевая структура имеет те же версии .NET. У меня была та же проблема, и мой класс .NET составлял 3.5, а веб-решение - 4.5. Я синхронизировал их, а затем он работал:)

Ответ 5

Я обнаружил, что это вызвано тем, что я имел то же имя пространства имен, что и имя класса (MyWorld.MyWorld = Namespace.ClassName).

Измените пространство имен на имя, которое не совпадает с именем вашего класса, и оно будет скомпилировано.

Источник

Ответ 6

У меня была та же проблема и без всякого успеха проделал все это, затем я узнал, что это было:

Я создал папку под названием "Система" в одном из моих проектов, а затем создал в ней класс. Проблема, похоже, связана с наличием пространства имен под названием "Система", когда файл .cs создается, даже если он находится в пространстве имен "MyProject.System".

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

Ответ 7

У меня возникла такая же проблема с System.Data.SQLite. Источником проблемы является используемая dll должна иметь такую ​​же версию .NET с вашим проектом.

Например, если вы использовали (в моем случае) SQLite для .NET 4.5, ваша целевая платформа также должна быть .NET 4.5.

Вы можете найти целевой объект платформы: Project > (имя проекта) Properties > Build.

Ответ 8

В моем случае проблема возникала, потому что класс, который я создал, имел пространство имен, которое мешало существующим классам. Новый класс A имел пространство имен zz.yy.xx(по ошибке). Ссылки на объекты в другом пространстве имен yy.xx не компилировались в классе A или других классах, пространство имен которых было zz.

Я изменил пространство имен класса A на yy.xx, которое должно было быть, и оно начало работать.

Ответ 9

ДЛЯ ЛЮБОГО С LINKED FILES: У меня была эта проблема, и я использовал silverlight, а файл-нарушитель, который выбрасывал эту ошибку, был связанным файлом.

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

Ответ 10

В моем случае не было изменений в проектах, оно просто прекратилось для компиляции и с "типом или именем пространства имен XXX не существует", а в самом жалобном классе intellisense для этого пространства имен/класса XXX отлично работает. Проблема действительно в ссылках!

Шаги для воспроизведения:

  • Решение имеет ProjectA, ProjectB. ProjectA ссылается на сторонний log4net и помечен Copy local: true. ProjectB ссылается на ProjectA и не имеет ссылки на log4net. Решение компилируется отлично.

  • Изменение в ProjectA: ссылочное свойство для log4net на Copy local: false.

  • Очистить папки bin и obj.
  • Когда вы компилируете, ProjectA компилируется, но ProjectB жалуется, что не находит пространство имен ProjectA.

This is because ProjectB папка bin отсутствует сторонняя библиотека (log4net in my case)!

В этом случае решение будет -

  • убедитесь, что ссылки сторонних библиотек установлены на Copy local: true или
  • добавить путь к таким библиотекам в свойствах проекта по эталонному пути.

Ответ 11

Я ссылаюсь на Microsoft.CommerceServer.Runtime.Orders и испытал эту ошибку. Этот проект старый и имеет целевую структуру .NET 2.0. На выходе у меня была эта ошибка:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets(1605,5): warning MSB3268: The primary reference "Microsoft.CommerceServer.Runtime" could not be resolved because it has an indirect dependency on the framework assembly "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" which could not be resolved in the currently targeted framework. ".NETFramework,Version=v2.0". To resolve this problem, either remove the reference "Microsoft.CommerceServer.Runtime" or retarget your application to a framework version which contains "System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"

Я просто изменил целевую структуру на .NET 4, и теперь она строит.

Ответ 12

И если все остальное не удается, например, чтобы целевые структуры были одинаковыми, и вы имеете дело с библиотекой классов WPF в VS2010, просто перезапустите Visual Studio. Это сделало это для меня.

Ответ 13

Я столкнулся с этой проблемой, используя Visual Studio Git для управления проектом. По какой-то причине проект Windows Phone 8 скомпилировался бы очень хорошо при таргетинге на x86, но когда я установил его для целевого ARM, он не смог бы скомпилировать с ошибкой, указывающей, что "реклама" не существует в пространстве имен Microsoft.

Я решил решить эту проблему, удалив ссылку Microsoft.Advertising. *.ll и добавив ее снова.

Ответ 14

У меня были те же ошибки. После того, как я обнаружил, что у моего проекта было неправильное имя Ассамблеи (я скопировал файлы из другого проекта, а пространства имен немного запутались) и изменил его, проект скомпилирован.

Ответ 15

У меня появилось очень похожее сообщение об ошибке, которое было вызвано непреднамеренным дублированием класса в другом проекте моего решения. При удалении дубликата исправлена ​​проблема

Ответ 16

Мне недавно нужно было выполнить восстановление системы, и это вызвало несколько изменений в моих файлах, которые я работал с момента восстановления. Некоторые из них были DLL файлами. Я использовал Source Control для извлечения всего проекта, но у меня все еще была аналогичная проблема, как указано выше. Я нашел этот ответ, в котором описано, что вам может потребоваться удалить DLL и прочитать его, чтобы устранить ваши ошибки. Так было в моем сценарии.

Удаление WebMatrix.WebData и считывание его, а также добавление в WebMatrix.Data исправлено моя ошибка The type or namespace name 'Data' does not exist in the namespace 'WebMatrix' ....

Ответ 17

Удалите файл .refresh.dll, если вы находитесь под контролем источника. Затем перестройте. Он должен работать. Это сработало для меня