답변:
일반적으로 소스 제어는 소스에만 사용하는 것이 가장 좋으며 생성 된 파일은 소스가 아닙니다.
예외가 있습니다. 때때로 (Visual Studio를 사용하여) 미니 덤프를 읽기 위해 .pdb 파일을 유지하려고 할 수 있습니다. 생성 된 파일을 정확하게 다시 생성 할 수 없도록 툴체인을 복제 할 수없는 경우가 있습니다. 이 경우 모든 VCS 변경이 아닌 릴리스 된 소프트웨어에 대해이 작업을 수행하는 데 주로 관심이 있으며, 어떤 경우에도 버전이 지정된 폴더에 쉽게있을 수 있습니다. (이것은 일반적으로 바이너리 파일이며, 한 버전에서 다른 버전으로 포괄적으로 변경되지 않으며 VCS에있는 것만 큼 큰 이점이 없습니다.)
간단한 대답? 안 돼요! 나는 많은 이유를 생각할 수 없지만 당신이 원하는 이유는 없습니다.
dll을 체크인한다고 생각할 수있는 유일한 시간은 모든 개발자가 설치하기를 기대하지 않는 타사 라이브러리에서 온 것입니다. 그러나 여전히, 그것은 bin 폴더에 없습니다.
즉, 각 배포 패키지를 소스 제어에 배치해야하는 한 회사에서 근무했지만 고객에게 제공 한 다양한 빌드를 추적하고 필요한 경우 쉽게 롤백 할 수있었습니다.
bin 폴더를 TFS에 체크인하지 않습니다. 이미 알고 있듯이 개발자가 솔루션을 빌드 할 때마다 bin 폴더를 체크 아웃합니다. 안좋다. 그러나 컴파일하고 실행하기 위해 프로젝트에 필요한 라이브러리가 있으며, 규칙은 모든 프로젝트를 소스 제어에서 열 수 있어야하며 컴파일하고 실행해야한다는 것입니다. 따라서 우리가하는 일은 프로젝트가 참조해야하는 DLL에 대한 "BinRef"폴더를 만들고 BinRef 폴더의 복사본에 대한 프로젝트 참조를 만드는 것입니다. BinRef 폴더 가 TFS에 체크인되었습니다.
이 접근법의 다른 장점은 BinRef가 항상 웹 프로젝트의 루트 레벨에 있다는 것입니다. 내 프로젝트가 살고 C:\Projects\Marcie\SomeProjectCategory\ProjectA
있고에있는 DLL에 대한 참조를 만들면 C:\DLLsThatILike
참조가 다음과 같이 보입니다.
\..\..\..\NiceThing.dll
. 프로젝트 파일을 보관할 수 있습니다. C:\ProjectA
즉, NiceThing에 대한 프로젝트 참조가 시스템에서 작동하지 않습니다. 바라건대 사람들은 이런 식으로 참조를하지 않지만 그것이 일어나는 것을 보았습니다.
변경 요청 프로세스의 일부로 bin 디렉토리의 내용을 체크인합니다. 읽기 전용 문제를 피하기 위해 내용을 별도의 폴더에 복사하여 체크인합니다. 회사 정책에 따라 프로덕션으로 이동하는 모든 바이너리는 소스와 별도로 체크인해야합니다. 최상의 솔루션은 아니지만 작동하며 프로덕션 환경에있는 정확한 파일을 제공합니다.