Можно ли использовать код проектов из разных решений?
...иначе, чем путём публикации/подключения пакетов в NuGet или копирования? Есть два решения, которые:
- Пользуются общими библиотеками (допустим, это уйдёт в NuGet, там же как-то приватно можно опубликовать их для локального использования?)
- Один из проектов частично пользуется моделью другого проекта.
Пока писал вопрос, то подумал, что я мог бы добавить во второй проект необходимые интерфейсы, т.к. всё равно данные планирую через Wcf получать, то можно как бы "расширить" Апи, который планируется использовать, но я планировал передавать далеко не все данные, моделью которых пользуюсь во втором решении... Может я чего-то очевидного не знаю/не понимаю, или просто неправильно спроектировал (пет-проект, поэтому "старших" товарищей, которые могли бы подсказать, не имею)
Ответы (1 шт):
Последовал совету уважаемого @aepot, просто подключил искомый проект в два солюшена. Спасибо!
Последовательность действий:
- Имеем оба решения локально (скачиваем/клонируем).
- Открываете решение (пусть будет "решение-реципиент"), в котором необходимо использовать код из уже существующего в другом решении проекта (назовём второе решение: "решение-донор").
- Кликаете правой кнопкой по заголовку решения-реципиента, выбираете пункт "добавить существующий проект" (или аналогичную англоязычную версию этой кнопки), и указываете *.csproj файл искомого проекта из решения-донора.
- ??? Профит!
В моём случае, я использовал часть модели (вынесена в отдельный проект) в обоих решениях, поэтому в одном решении я эту модель храню, а в другом — подключил из "внешнего" репозитория. Как будут отображаться изменения модели в обоих репозиториях, пока не знаю, поэтому не проконсультирую. Если будет интересно: пишите коммент — допишу.
P.S. В системе контроля версий в репозитории решения-реципиента не отображается заимствованный проект, т.к. физически этот проект находится вне репозитория. По-крайней мере hg это так происходит (думаю, что в git будет аналогично). Соответственно все изменения в этот проект нужно фиксировать в репозитории, в котором его файлы собственно и находятся. Наталкивает на мысли о ещё одном разбиении моих решений на ещё более мелкие репозитории/решения.