2009-10-19 5 views
0

우리는 svn에 체크 된 코드를 사용하여 종속성을 처리하기위한 규칙을 정하기 위해 노력하고 있습니다. 이전 방법은 기본적으로 무료였습니다. 즉, 프로젝트를 참조 할 수 없으며 프로젝트를 참조 할 수 없었습니다 (대부분의 프로젝트는 C#입니다).Visual Studio 2008의 DLL 자동 버전

우리는이 단계를 한 번에 수정하고 이제 별도의 svn 저장소에 바이너리를 체크인합니다. 빌드는 해당 svn 개정 번호로 구별되므로 svnrelease/libraryA/r1000/libraryA.dll과 같은 경로가있을 수 있습니다. 라이브러리 A는 라이브러리 B에 의존하고 프로젝트 P는 라이브러리 A에 의존하지만 라이브러리 B를 직접 참조합니다. 라이브러리 A가 B의 리비전 1000을 참조하지만 프로젝트 P의 직접 참조는 다음과 같은 시나리오입니다. 개정 2000 년?

여러 버전이 공존 할 수 있도록 릴리스 svn repo에 체크인 할 때 DLL 파일 이름에 개정 번호를 포함 할 것을 제안했습니다. 동료는 VS2k8이 자동으로이를 처리 할 수 ​​있다고 제안했습니다. 라이브러리 A 프로젝트에서 버전 1.8로 설정하면 VS는 출력 "libraryA_1_8.dll"의 이름을 지정하고 프로젝트 P에서는 "$ (release) \ libraryA \ $ (version)"에 대한 참조를 가질 수 있습니다. 해결할 수 있습니다. 이 작업을 수행하는 방법에 대한 정보를 찾을 수 없습니다. 이것이 가능한가? 그리고 그렇지 않다면 합리적인 DLL 바이너리 파일에 버전 이름을 포함시키는 나의 방법입니까?

(시나리오에 따르면 리팩터링 코드가 필요할 수도 있음을 알고 있지만, 단기적인 솔루션을 찾고 있습니다 .GAC를 사용하는 것도 가능하지만 지금은

답변

3

일반적으로 각 프로젝트 (또는 더 자주 각 솔루션)에 솔루션이 의존하는 어셈블리를 배치하는 "lib"디렉토리가 있습니다. 즉, 각 솔루션은 다른 솔루션과 독립적입니다. 음, 적어도 일종의; 각 lib 디렉토리 내의 종속성은 여전히 ​​서로 잘 작동해야합니다. 그러나 다른 솔루션을 손상시키지 않으면 서 각 솔루션을 개별적으로 업데이트 할 수있는 상황을 제공합니다.