В моей компании SAAS есть два продукта C # .NET, которые называются Application Alpha и Application Beta. Они оба ссылаются на некоторые библиотеки, которые мы можем назвать Core.
На данный момент кодовая база является монолитной, хранится в одном репозитории SVN с одним решением .NET, и мы пытаемся сделать его более модульным / компонентным. Мы разделились на отдельные репозитории для двух приложений и базовой библиотеки, но теперь мы сталкиваемся со следующей проблемой:
Альфа и Бета должны ссылаться на Core, но мы стараемся избегать прямой ссылки на код, потому что тогда мы практически вернулись к исходной точке: вам нужно проверить и разместить все репозитории. Итак, как нам ссылаться на сборки между этими компонентами?
Каждый компонент может иметь каталог, содержащий библиотеки DLL от других компонентов, на которые необходимо ссылаться, которые хранятся в SVN, но это будет означать дополнительные усилия при каждом обновлении Core для отправки новых библиотек DLL в Alpha и Beta.
Или мы могли бы хранить библиотеки DLL в центральном месте SVN (и / или в GAC), но это будет означать дополнительные усилия в любое время, когда обновляется Core, чтобы все остальные могли использовать новые библиотеки DLL.
Есть третий вариант, который мы пропускаем?