2013-07-21 8 views
0

여러 프로젝트로 솔루션을 관리하고 각 프로젝트를 고유 한 리포지토리 구조 (분기/태그/트렁크)에 배치하려고합니다. 나는 프로젝트에서 Test1을하고 난 자신의 저장소에 커밋 : 나는 다른 프로젝트가 Test2를 가지고Subversion 프로젝트와 Subversion의 Visual Studio에서의 종속성

trunk 
    Test1 
     Properties 
     Class1.cs 
     Test1.csproj 
    Test1.sln 

와 나는 자신의 저장소에 커밋하고 Test1.I는 SVN 사용에 Test2를이 따라 다음을 수행 할 enxternals을 Test2의 Test1을 참조한 다음 Visual Studio에서 Test2 솔루션을 마우스 오른쪽 단추로 클릭 한 다음 Add-> 기존 프로젝트에 Test1을 추가합니다.

branches/ 
    tags/ 
    trunk/ 
     Test2/ 
     Properties/ 
     Class2.cs 
     Test2.csproj 
    Test2.sln 
    svn:externals Test1 https://mydomain/Test1/trunk/Test1 

와 나는 가지고 Test2를에 따라 다른 프로젝트 테스트 3 :

branches/ 
    tags/ 
    trunk/ 
     Test3/ 
     Properties/ 
     Class3.cs 
     Test3.csproj 
     Test3.sln 
     svn:externals Test2 https://svn/Test2/trunk/Test2 

을 다음 Test2를 같은 동일한 작업을 수행.

하지만 Test2 프로젝트를 Test3에 추가하면 Test2 프로젝트 (dep1)의 depencecy가 존재하지 않으며 Test3을 빌드 할 때 오류가 발생합니다. 테스트 3 저장소에 외관의 commnad :

내가 SV에 따라 사용이 문제를 해결하기 위해

svn:externals Test2 https://mydomain/Test2/trunk 

을하지만 난 테스트 3 솔루션을 업데이트 할 때 다음과 같은 구조는 테스트 3에 나타납니다

Test3/ 
Properties/ 
Class3.cs 
Test3.csproj 
Test2 
    Test2/ 
     Properties/ 
     Class2.cs 
     Test2.csproj 
     Test1 
      Properties/ 
      Class1.cs 
      Test1.csproj 
    Test2.sln 
Test3.sln 

그러나이 이상적인 접근 방식은 Test1 dll이 Test1 프로젝트를 체크 아웃하고 Test3을 빌드하기 위해 먼저 Tes3/Test2/Test1/Test1.csproj에있는 Test1 프로젝트를 빌드 한 다음 Test3/Test2.sln을 빌드해야하기 때문입니다.

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변

0

Test2 및 Test3에 따라 다른 프로젝트가 있습니까? 그렇지 않은 경우 세 저장소 모두에 동일한 저장소를 사용하는 것이 다른 저장소에 저장하는 것이 좋습니다. ERP 프로젝트에 동일한 저장소에 수십 개의 프로젝트가 있으며 잘 작동합니다. 필자는 둘 이상의 저장소에 연결된 프로젝트에만 외부를 사용합니다.

Test2를 Test3에 연결하고 Test1을 연결하지 않으면 Test1을 컴파일하고 exe 또는 dll 참조를 추가해야합니다. 하지만 그게 당신이 Test2와 Test1을 연결하는 방법에 따라 작동하지 않을 수 있습니다. Test2와 Test1을 프로젝트 레벨에서 연결하면 Test2의 인스턴스가 두 개 있기 때문에 Test2를 컴파일해야 Test2를 컴파일 할 수 있습니다. 하나는 Test1 만 있고 다른 하나는 Test1이없는 Test3입니다.

모든 프로젝트를 단일 프로젝트에 넣거나 모두 별도로 컴파일하여 필요할 때 참조로 추가하는 것이 좋습니다.