Можно ли использовать код проектов из разных решений?

...иначе, чем путём публикации/подключения пакетов в NuGet или копирования? Есть два решения, которые:

  1. Пользуются общими библиотеками (допустим, это уйдёт в NuGet, там же как-то приватно можно опубликовать их для локального использования?)
  2. Один из проектов частично пользуется моделью другого проекта.

Пока писал вопрос, то подумал, что я мог бы добавить во второй проект необходимые интерфейсы, т.к. всё равно данные планирую через Wcf получать, то можно как бы "расширить" Апи, который планируется использовать, но я планировал передавать далеко не все данные, моделью которых пользуюсь во втором решении... Может я чего-то очевидного не знаю/не понимаю, или просто неправильно спроектировал (пет-проект, поэтому "старших" товарищей, которые могли бы подсказать, не имею)


Ответы (1 шт):

Автор решения: Ivan Andreev

Последовал совету уважаемого @aepot, просто подключил искомый проект в два солюшена. Спасибо!

Последовательность действий:

  1. Имеем оба решения локально (скачиваем/клонируем).
  2. Открываете решение (пусть будет "решение-реципиент"), в котором необходимо использовать код из уже существующего в другом решении проекта (назовём второе решение: "решение-донор").
  3. Кликаете правой кнопкой по заголовку решения-реципиента, выбираете пункт "добавить существующий проект" (или аналогичную англоязычную версию этой кнопки), и указываете *.csproj файл искомого проекта из решения-донора.
  4. ??? Профит!

В моём случае, я использовал часть модели (вынесена в отдельный проект) в обоих решениях, поэтому в одном решении я эту модель храню, а в другом — подключил из "внешнего" репозитория. Как будут отображаться изменения модели в обоих репозиториях, пока не знаю, поэтому не проконсультирую. Если будет интересно: пишите коммент — допишу.

P.S. В системе контроля версий в репозитории решения-реципиента не отображается заимствованный проект, т.к. физически этот проект находится вне репозитория. По-крайней мере hg это так происходит (думаю, что в git будет аналогично). Соответственно все изменения в этот проект нужно фиксировать в репозитории, в котором его файлы собственно и находятся. Наталкивает на мысли о ещё одном разбиении моих решений на ещё более мелкие репозитории/решения.

→ Ссылка