작성을 위해 Subversion과 Nant 사용. 몇 가지 하위 프로젝트에 의존하는 기본 프로젝트가 있습니다. 하위 프로젝트는 전복 내부에 별도의 프로젝트로 존재합니다.Nant : svn-externals를 사용하여 프로젝트 빌드
내 질문 : 기본 프로젝트의 nant 빌드 스크립트가 참조 된 모든 하위 프로젝트와 자체를 빌드해야합니까? 또는 하위 프로젝트가 어떻게 빌드 하는지를 알고 어떻게 든 서브 빌드를 메인 빌드 파일에서 빌드 파일이라고 부르며 어떻게 든 모든 결과를 메인 프로젝트 빌드 출력으로 어셈블합니다.
저는 현재 mainproject 빌드 파일에 모든 하위 프로젝트를 빌드해야합니다. 즉, 빌드 파일의 각 하위 프로젝트에 대한 타겟이 없습니다. 그러나 이는 주 빌드 파일과 하위 프로젝트 사이의 긴밀한 결합을 만드는 것으로 보입니다. "하위 프로젝트가 스스로를 구축하는 방법을 알고 있습니다."라고 말하면서 주 프로젝트에서 스스로를 구축하고 결과물을 조합하도록 요청할 수 있다면 좋을 것입니다. 내가 Subversion을 svn의-외관 속성을 사용하여 하위 프로젝트 당기는거야
/Repo
/MainProject
/trunk
/doc <-- documentation
/lib <-- binary-only DLLs (usually 3rd party)
/src <-- source code for MainProject
/svn-externals <-- hold references to other projects in repository
...
/ClassLib1
/trunk
/doc
/lib
/src
/svn-externals
...
/ClassLib2
/trunk
/doc
/lib
/src
/svn-externals
...
/ClassLibCommon
/trunk
/doc
/lib
/src
/svn-externals
: 같은
는 참고로, 내 저장소 보인다. 그래서 제 작업 복사본은 다음과 같습니다 :
/MainProject
/build
/doc
/lib
/src
/MainProject
/svn-externals
/ClassLib1 <-- svn external to svn://xyz/repo/ClassLib1/trunk
/doc
/lib
/src
/svn-externals
/ClassLibCommon <- svn external to svn://xyz/repo/ClassLibCommon/trunk
...
/ClassLib2 <-- svn external to svn://xyz/repo/ClassLib2/trunk
/doc
/lib
/src
/svn-externals
/ClassLibCommon <- svn external to svn://xyz/repo/ClassLibCommon/trunk
...
라이브러리 프로젝트는 다른 "기본"프로젝트에서 사용됩니다. 그것들은 프로젝트 참조입니다. 두 가지 : 1. 라이브러리가 자주 변경됩니다. 2. 나는 기존의 지혜가 소스 코드를 가지고있는 바이너리를 저장하지 않는다고 생각했다. – User
다릅니다. 저에게 타기보다는 하나 이상의 솔루션으로 프로젝트를 언급하지 마십시오. 주 프로젝트의 일부가 아닌 공유 라이브러리를 고려합니다. 그래서, 내 Crystal Report DLL을 svn에 넣는 것과 마찬가지로 내부 프레임 워크 DLL도 거기에 넣습니다. 또한 DLL 참조는 각 프로젝트에서 사용중인 해당 라이브러리 버전에 대한 제어 기능을 제공합니다. 당연히 당신은 위의 작업을 수행 할 수 있고 바이너리를 svn에 두지 않을 수 있습니다. 네트워크 공유에 배치하십시오. – PilotBob
"둘 이상의 솔루션에서 프로젝트를 언급하지 않으면"이 사실을 잘 모르겠다.명확히하기 위해, 내가 "프로젝트"라는 용어를 사용했을 때 나는 시각적 인 스튜디오 감각이 아닌 일반적인 의미에서 그것을 의미합니다. 그래서 제 생각에, 클래스 라이브러리 "프로젝트"(실제로는 자체 솔루션)는 하나 이상의 솔루션에서 사용하도록되어 있습니다. – User