В моем приложении имеется смесь из 3.5 и 4.0-ориентированных сборок. Я работаю над новым таргетингом на службы Windows 4.0, и проект внезапно кажется неспособным увидеть некоторые из других сборок в решении. Значение, при построении, все ссылки на эти некоторые другие сборки производят следующую ошибку:
Тип или имя пространства имен "[X]" не существует в пространстве имен "[Y]" (вам не хватает ссылки на сборку?)
Если я удалю ссылку на проект и снова его добавлю, красные squigglies уйдут, а Intellisense начнет снова, как предполагалось. Все остальные проекты в решении построены без проблем. Но как только я пытаюсь построить этот новый проект, ошибки возвращаются.
Одна из неудачных ссылок - на наш Core.dll, который нацелен на 3.5. Недавно мы добавили таргетинг CoreEx.dll 4.0, с совместным использованием пространства имен между сборками. Новая служба может видеть CoreEx.dll, но не Core.dll... т.е. Когда я начинаю вводить текст using Core.Utilities...
Intellisense выбирает меньший набор пространств имен из CoreEx.dll, но не показывает ничего, что появляется только в Core.dll, Я уверен, что решение было успешно построено после добавления этого, но это заметное недавнее изменение.
Другая неудачная ссылка - на наш основной Data.dll, который содержит кучу наборов данных и материал Entity Framework. Этот недавно был перенесен на 4.0. Опять же, я почти уверен, что решение было создано после миграции проекта, но стоит упомянуть.
Последняя неудачная ссылка - это сборка, которая использует пространство имен на уровне "вверх" от службы. Например, проблемный проект основан на пространстве имен ProductName.Component.ComponentService
, и он не может видеть проект, основанный на пространстве имен ProductName.Component
. Этот недавно был создан вместе с проблемным проектом, а также цели 4.0.
Как вы можете видеть, нет никаких рифм или причин, по которым сбои ссылок не выполняются... и проблемный проект может успешно ссылаться на некоторые из других сборок в решении. Я пробовал очистить, перестроить, перезапустить Visual Studio... ничто не фиксировало его навсегда. Что может быть причиной этого?