これは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_コア_1.00
- RLS_Core_1.01
- RLS_Core_2.00
- RLS_Core_3.00
リリースされたライブラリ(dll)を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 外部プロパティを使用して、ProjectA
およびに使用する Core-libs のリビジョンを定義しますProjectB
。
どちらのアプローチでも、開発者は自分のプロジェクト ソリューションでどの Core-libs リリースを使用するかを明示的に決定する必要があります。ルールは、機能が不足しているためにアップグレードする必要がない限り、同じ Core-lib を保持することです。 アプローチ 1 : プロジェクト ソリューションで編集します。アプローチ 2 : 外部プロパティで編集します。
どのアプローチが好ましいですか?