Почему сборка завершается неудачно в Visual Studio, потому что она не может разрешить пространства имен из ссылочных сборок? - PullRequest
16 голосов
/ 31 марта 2011

У меня есть 3 проекта библиотеки классов.Давайте назовем их A, B & C. Я добавил project reference A & B в проект C.

A & B строятся без каких-либо ошибок или предупреждений.

Код (Классfile) из проекта C использует открытые классы из A & B. Когда я добавляю ссылку на проект в C и смотрю на файл классов (до создания проекта C) в проекте C, я ясно вижу, что все классы иПространства имен из A & B. разрешены. Когда я наводю указатель мыши на имя класса (класс из A или B), он также показывает правильное пространство имён.

Я установил Copy Localсвойство True для обеих ссылок проекта.

Однако

  1. Когда я запускаю Перестроить все (или Построить на проекте C), сборка завершается неудачно, потому что не удается разрешитьПространства имен!Что еще можно проверить, чтобы убедиться, что все сделано правильно?
  2. Я никогда не нахожу сборки A & B, скопированные в папку bin\debug проекта C. Почему он не копирует ссылку?(Я видел несколько вопросов по этой проблеме, но ни одно из предоставленных им решений не помогло мне)

Ответы [ 2 ]

35 голосов
/ 31 марта 2011

Проблема решена. Проблема заключалась в том, что проект C был ориентирован на платформу «.NET 4 Client profile», а A, B - на платформу «.NET 4». Когда я изменил целевой фреймворк C, все было успешно построено.

Ответ, отправленный на этот вопрос от 'Зарегистрированный пользователь', помог мне.

12 голосов
/ 31 марта 2011

Проверьте, использует ли каждый проект одну и ту же Целевую платформу . Вы можете получить такую ​​ошибку, если, например, один из проектов использует .Net Framework 4 Client Profile, а остальные используют .Net Framework 4 (не Client Profile)

...