Это структура SVN:
/trunk
+ ProjectA
+ ProjectB
+ Common
+ ProjectCore
+ References
ProjectA
и ProjectB
доставят конечный продукт, и у каждого из них может быть свой жизненный цикл выпуска.Оба проекта используют одни и те же общие библиотеки из ProjectCore
.ProjectCore
также будет иметь собственный жизненный цикл выпуска.В ProjectA
и ProjectB
мы хотим сослаться на библиотеки ProjectCore
.ProjectCore-libs были добавлены в SVN после успешного жизненного цикла релиза ProjectCore
.ProjectCore-libs добавляются в папку References
.
Этим мы выпускаем (замораживаем) наши сборки ProjectCore
как компонент, который был полностью протестирован.Итак, у нас есть несколько выпусков Core-lib:
- RLS_Core_1.00
- RLS_Core_1.01
- RLS_Core_2.00
- RLS_Core_3.00
Так как мы добавляем освобожденные библиотеки (dll's) в SVN, ProjectA
и ProjectB
могут ссылаться на них.Каков наилучший подход для этого?
Подход 1
Добавьте ProjectCore
-libs в SVN в новую папку под References
с именем RLS_Core_X_XX
,
В решении ProjectA
и ProjectB
мы добавляем ссылку на эту уникальную папку: ./trunk/Common/References/RLS_Core_X_XX
.
Подход 2
Добавьте ProjectCore
-libs в SVN в одну и ту же папку References/Core
.Если в нем была «старая» версия, это будет коммит.
В решении ProjectA
и ProjectB
мы добавляем ссылку на: ./trunk/Common/References/Core
.Мы используем внешние свойства SVN, чтобы определить, какая версия Core-libs должна использоваться для ProjectA
и ProjectB
.
. В обоих подходах разработчику явно необходимо решить, какую версию Core-libs он хочет получить.использовать в своем проекте союзы.Правило не изменяет Core-libs, если вам не нужно обновляться из-за отсутствия функциональности. Подход 1 : редактировать в проекте решения. Подход 2 : редактировать во внешних свойствах.
Какой подход предпочтительнее?