Почему сбой сборки в Visual Studio, потому что он не может разрешить пространства имен из ссылочных сборок?

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

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

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

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

Однако

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

Ответы

Ответ 1

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

Отвечал на этот вопрос от пользователя "Registered User".

Ответ 2

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