Как разделить пространство имен между проектами в.NET/C#/VS2008. Получена ошибка: "Вы пропустили ссылку на сборку?"
Каков протокол для разделения пространства имен между двумя проектами, когда последующие проекты будут ссылаться на оба пространства имен?
Очевидно, это возможно (System, mscorlib)...
Я получил разные ошибки в зависимости от того, что я пробовал. Сейчас у меня есть два проекта Blueprint и Domain, которые совместно используют пространство имен MainApp (например, Blueprint имеет MainApp.IEntity, а Domain имеет MainApp.EntityImpl). На них ссылается третий проект, хранилища. Репозитории используют как IRepository (в Blueprint), так и EntityImpl (в Domain). Сначала собирается Blueprint, затем Domain, а затем Repositories. Для каждой ссылки на класс в проекте Domain я получаю "Тип или имя пространства имен Domain не существует в пространстве имен MainApp" (вам не хватает ссылки на сборку?)...
Все сборочные ссылки верны.
Я позаботился о том, чтобы между всеми проектами было общее имя сборки, и добавил в один из них класс AssemblyInfo, добавив ссылки на ссылки в корень. Это ничего не сделало, и поэтому я удалил его.
Я мог бы объединить эти два проекта, но есть обстоятельства, при которых это будет вредным. Я ценю любые рекомендации, которые вы можете предложить.
В ответ на комментарий Blueprint не имеет межпроектных ссылок, Domain зависит от Blueprint Repositories зависит от Blueprint и Domain
Я сделал все удаление dll, восстановление здания, повторяя очистку.. не игра в кости..
4 ответа
Я решил эту проблему, скопировав код в другое решение. Оглядываясь назад, я уверен, что это было ненужным. Оглядываясь назад, я думаю, что проблема была бы решена путем удаления всего из папок bin и obj.
Я не могу объяснить почему, но у меня есть проект с двумя проектами библиотеки классов, определяющий одно и то же пространство имен и использующий фреймворк 3.5. Я отослал их в проект, используя профиль клиента NET Framework 4.0, и получил ошибку, которую вы получили. При установке на NET Framework 4.0 это работало.
Я только столкнулся с этой проблемой. Вы должны убедиться, что все ваши проекты имеют одинаковую версию. Ряд мин представлял собой комбинацию.net 4.0 и 4.5; сделав все ссылки на 4.5, я решил эту проблему.
Откройте обе библиотеки в отражателе и сгладьте пространства имен (просмотр -> параметры -> браузер -> сгладить пространства имен).
Посмотрите, поможет ли это вам выяснить причину проблемы.