Тип или имя пространства имен не существует
У меня есть проект службы данных 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, если вы находитесь под контролем источника. Затем перестройте. Он должен работать.
Это сработало для меня