2009-10-06 3 views
0
  • TFS에 저장되는 다중 프로젝트 솔루션이 있습니다.
  • 각 프로젝트에는 별도의 디버그/릴리스 빌드 구성 폴더가 지정되어 있습니다.
  • 기본 프로젝트의 bin 폴더는 저장소에 포함 된 일부 타사 DLL을 포함하기 때문에 소스 제어에 "포함"됩니다.
  • 각 참조는 MS/TFS 모범 사례에 따라 "프로젝트"참조 유형입니다.

VS를 빌드 할 때마다 VS/TFS는 기본 프로젝트의 모든 빌드 된 종속성을 빌드 구성 폴더 (디버그/릴리스)와 루트 bin 폴더에 모두 복사합니다. 파일이 루트 bin 폴더에 나타나면 소스 컨트롤에 추가됩니다 (또는이 문제로 인해 이미 존재하는 경우 체크 아웃 됨)TFS가 자동으로 DLL을 소스 제어에 추가합니다.

지금은 소스 컨트롤에서 bin 폴더를 제거했지만 이것은 각 개발자가 소스 컨트롤에서 DLL을 가져 오는 대신 로컬 DLL을 유지 관리해야하기 때문에 이상적이지 않습니다.

내 이상적인 솔루션은 TFS 대신 SVN을 사용하는 것이지만이 서비스에 고정되어 있습니다.

이 시나리오에서 가장 좋은 방법은 무엇입니까?

답변

2

당신이 당신의 소스 컨트롤에서 바이너리를 포함 할 (그리고 어떤 사람들은 그렇게에 대한 지분에 화상을 입을 것이다) 나는 다음을 수행 할 경우

  • 프로젝트
  • 내부에 "바이너리"폴더 만들기를 안전하게 포함하여 수
  • 복사 종속성 거기에
  • 해당 위치

프로젝트 파일이 다음, 그들에게 상대 경로를 포함에 그 DLLS에 대한 참조를 추가 소스 제어에있는 "bin"디렉토리를 추가 할 필요없이 모든 devs에 대해 소스 제어에있는 해당 디렉토리를 사용할 수 있습니다.

+0

나는 확실히 그 방법을 사용할 수없는 "바이너리"폴더가 웹 사이트에 게시되고 대중에게 노출되도록하는 것입니다. 솔루션 레벨에 "Externals"폴더를 추가하고 바이너리 파일을 그리고 DLL에 파일 참조를 추가 할 수있었습니다. 감사합니다. –

0

위의 대답과 설명에 설명 된 솔루션을 사용한 후 솔루션을 빌드 할 때 몇 가지 이유로 DLL 중 하나가 bin 폴더에 복사되지 않는 것으로 나타났습니다. (참조에 대해 로컬 복사는 참으로 설정됩니다.) DLL은 빌드 구성 폴더에는 복사되지만 기본 bin 폴더에는 복사되지 않습니다. 응용 프로그램에서 사용되므로 종속성 검사에서이를 사용합니다. 지금이기 때문에, 런타임 오류 코드가 누락 된 DLL 예상되는 바와 같이 (이 구성 요소에 액세스하려고 시도 할 때마다 발생합니다.

어떤 아이디어? 최종 프로젝트가 그대로

+0

단일 bin 폴더 (디버그/릴리스 하위 폴더 없음)로 돌아가서 모든 t 그는 파일을 단일 위치에 복사했습니다. – ulty4life

관련 문제