Как разделить пространство имен между проектами в .NET / C # / VS2008. Получена ошибка: «Вы пропустили ссылку на сборку?» - PullRequest
1 голос
/ 04 июня 2010

Каков протокол для разделения пространства имен между двумя проектами, когда последующие проекты будут ссылаться на оба пространства имен?

Очевидно, что это возможно (System, mscorlib) ...

Я получил разные ошибки в зависимости от того, что я пробовал. Сейчас у меня есть два проекта Blueprint и Домен , которые совместно используют пространство имен MainApp (например, Blueprint имеет MainApp.IEntity, а Domain имеет MainApp.EntityImpl). На них ссылается третий проект, Хранилища . Репозитории используют как IRepository (в Blueprint), так и EntityImpl (в Domain). Сначала собирается Blueprint, затем Domain, а затем Repositories. Для каждой ссылки на класс в проекте Domain я получаю «Тип или имя пространства имен Domain не существует в пространстве имен MainApp» (отсутствует ссылка на сборку?) ...

Все ссылки на сборки верны.

Я удостоверился, что между всеми проектами было общее имя сборки , и добавил в один из них класс AssemblyInfo, добавив ссылку на ссылку в корень. Это ничего не сделало, и поэтому я удалил его .

Я мог бы объединить эти два проекта, но есть обстоятельства, при которых это может быть вредным. Я ценю любые рекомендации, которые вы можете предложить.

В ответ на комментарий Blueprint не имеет межпроектных ссылок , Домен зависит от Blueprint Репозитории зависят от Blueprint и Domain

Я сделал все, удалив dll, повторяю очистку здания, повторяя .. не играю в кости ..

Ответы [ 4 ]

1 голос
/ 30 ноября 2010

Я не могу объяснить почему, но у меня есть проект с двумя проектами библиотеки классов, определяющий одно и то же пространство имен и использующий фреймворк 3.5. Я отослал их в проект с использованием профиля клиента NET Framework 4.0 и получил ошибку, которую вы получили. При установке в NET Framework 4.0 это работало.

0 голосов
/ 24 мая 2013

Я только что столкнулся с этой проблемой. Вы должны убедиться, что все ваши проекты имеют одинаковую версию. Ряд мин представлял собой комбинацию .net 4.0 и 4.5; сделав все ссылки на 4.5, я решил эту проблему.

0 голосов
/ 10 декабря 2010

Я решил эту проблему, скопировав код в другое решение. Оглядываясь назад, я уверен, что это было ненужным. Оглядываясь назад, я думаю, что проблема была бы решена путем удаления всего из папок bin и obj.

0 голосов
/ 04 июня 2010

Откройте обе библиотеки в отражателе и сгладьте пространства имен (просмотр -> параметры -> браузер -> сгладить пространства имен).

Посмотрите, поможет ли это вам выяснить причину проблемы.

...