문제
협업을 할 때, 주로 VSS같은 버전 관리 시스템을 통해서 관리를 하게 됩니다.
그리고, 각각 모듈별로 작업을 할 때 Visual Studio.NET에서는 프로젝트 단위로 어셈블리(DLL)이 생성이 되죠. 그래서 일정 수준의 프로젝트가 생기기 마련입니다.
특히, 전에 있었던 곳에서는 웹 프로젝트도 부분별로 다 프로젝트로 나눠버리는 바람에.. 나중에 되니까 한 솔루션에 50여개 가까운 프로젝트가 묶이게 되었습니다. 떳-
이런 상황해서 서로 참조를 할 때, 프로젝트 참조를 해버리게 되면 모든 개발자마다 50여개의 프로젝트를 다 로딩해야 하는 상황이 옵니다. 덜덜
해결
일단, 기본적인 해결 방안은 어셈블리 참조입니다.
그리고 그 어셈블리를 담고 있을 빈 프로젝트를 하나 만듭니다. 'Assembly Container Project'
빈 프로젝트에는 주로 공통 어셈블리가 들어가게 되고 이걸 소스 컨트롤을 통해 관리하게 되면 공통 어셈블리를 편리하게 관리할 수 있을 거 같네요. 솔루션과 같은 위치에 프로젝트를 생성만 시킨다면 말이죠 :)
추가적으로 각각의 프로젝트에서 빌드된 어셈블리를 빌드 후 이벤트를 통해 'Assembly Container Project'의 위치에 넣어줘도 되겠습니다. 빌드마다 생성되는 어셈블리는 소스 컨트롤을 통해 관리하지 않아도 될 거 같네요. 관리하게된다면 VSS의 경우 좀 귀찮은 일이 생길 것 같습니다.
사소한 방법 같지만, 문득 괜찮을 것 같아서 써봅니다.
추가적으로 'Assembly Container Project'에 간단한 readme.txt 파일 같은게 있어도 되겠네요.
솔루션 빌드 설정에서 생략하게 해주는 건 기본 센스 :)
제루 Season 2, @Tokyo