这是SVN结构:
/trunk
+ ProjectA
+ ProjectB
+ Common
+ ProjectCore
+ References
ProjectA
并将ProjectB
交付最终产品,每个产品都可以有自己的发布生命周期。这两个项目都使用来自ProjectCore
.
ProjectCore
也会有自己的发布生命周期。在中ProjectA
,ProjectB
我们要引用ProjectCore
. ProjectCore-libs 在ProjectCore
. ProjectCore-libs 被添加到References
文件夹中。
通过这样做,我们发布(冻结)我们的ProjectCore
构建,作为一个经过全面测试的组件。所以我们有多个 Core-lib 版本:
- RLS_Core_1.00
- RLS_Core_1.01
- RLS_Core_2.00
- RLS_Core_3.00
由于我们将发布的库(dll)添加到SVN,ProjectA
并且ProjectB
可以参考它们。做到这一点的最佳方法是什么?
方法一
在名为ProjectCore
的新文件夹中将 -libs添加到 SVN 。References
RLS_Core_X_XX
在解决方案中ProjectA
,ProjectB
我们添加了对这个唯一文件夹的引用:./trunk/Common/References/RLS_Core_X_XX
.
方法二
ProjectCore
在同一个文件夹下将 -libs 添加到 SVN References/Core
。如果其中有一个“旧”版本,它将是一个提交。
在解决方案中ProjectA
我们ProjectB
添加了一个引用:./trunk/Common/References/Core
. 我们使用 SVN 外部属性来定义 Core-libs 的哪个版本必须用于ProjectA
和ProjectB
。
在这两种方法中,开发人员明确需要决定他想在他的项目解决方案中使用什么 Core-libs 版本。规则是保持相同的核心库,除非您因为缺少功能而必须升级。 方法1:在项目解决方案中编辑。方法 2:编辑外部属性。
首选什么方法?