Ссылочный проект «теряется» во время компиляции


103

У меня есть решение C # с двумя проектами: сервис (основной проект) и регистратор. Сервис использует классы из логгера. Я добавил ссылку на проект логгера в сервисный проект. Во время разработки автозаполнение работает нормально: классы средства ведения журнала видны, ссылки, которые я использую, окрашены соответствующим образом.

Я перестраиваю решение, и все идет не так. Ссылки больше не распознаются: «Имя« Ведение журнала »не существует в текущем контексте», и классы больше не существуют в режиме автозаполнения. Удаление и повторное присоединение ссылки возвращает меня к базовому состоянию, когда идентификаторы видны для автозаполнения.

Я перезагрузился, очистил все кеши, убедился, что это единственный экземпляр VS 2010, работающий на моей машине.

Есть ли что-то очевидное (очевидно), что мне не хватает?

Ответы:


158

Проверьте типы сборки каждого проекта в свойствах проекта - я уверен, что для сборки будет использоваться тот или иной вариант .NET XX - Client Profile.

С несовместимыми версиями, особенно с одним существом, Client Profileа с другим - нет, тогда он работает во время разработки, но не работает во время компиляции. Настоящая ошибка.

В Visual Studio 2010 для меня происходит что-то забавное, что продолжает устанавливать проекты случайным образом Client Profile, иногда, когда я создаю проект, а иногда через несколько дней. Возможно какое-то сочетание клавиш я случайно нажимаю ...


1
Готов поспорить, что вы правы ... и позор мне, если так, за то, что я не помню аналогичный вопрос, который я задал в прошлом месяце! stackoverflow.com/questions/3991361/…
Боб Кауфман

6
@ Боб Это продолжает истекать кровью со мной, и, как и у вас в предыдущем вопросе, каждый раз, когда это происходит, по крайней мере несколько минут, я полностью сбит с толку, пока не вспомню: «Ооооо, подожди, клиент ** ** ing Profile »
joshcomley

4
У меня также была эта проблема с VS2012. Оказалось, что проблема не в профиле клиента, а в том, что упомянутый проект относится к версии 4.5, а новый проект, на который имеется ссылка, по умолчанию имеет версию 4.0. Поднял его до 4.5, и проблема исчезла. На самом деле то же самое решение, просто еще один вариант.
Brad Mathews

Это случилось со мной недавно в VS 2013. Проект был по умолчанию 4.5, но одна из библиотек была построена на 4.5.2. Если проект - 4.5.2, а одна из библиотек - 4.5 или 4.5.1, он будет работать. Но не наоборот.
ахвм

4

Убедитесь, что оба проекта имеют одинаковую версию целевой платформы: щелкните правой кнопкой мыши проект -> свойства -> приложение (вкладка) -> целевая платформа.

Кроме того, убедитесь, что проект «logger» (который вы хотите включить в основной проект) имеет тип вывода «Библиотека классов»: щелкните правой кнопкой мыши проект -> свойства -> приложение (вкладка) -> тип вывода.

Наконец, перестроить решение.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.