2010-04-08 9 views
11

프로젝트의 빌드 출력 경로를 기본값 "bin \ debug"에서 수정해야하는 좋은 이유가 있습니까? 솔루션 내에서 모든 프로젝트를 공통 빌드 출력 위치로 지정하면 어떤 이점이 있습니까?Visual Studio의 기본 빌드 출력 경로 변경

답변

10

예, 보통 일 때 항상 입니다. Harry가 말했듯이, 디스크 공간 사용을 줄입니다. 디스크 공간이 엄청나게 적기 때문에 그다지 큰 문제는 아니지만 문제가 될 수 있습니다. 배포가 어떻게 생겼는지 더 잘 미러링하려면 실제 이유가 있습니다. 이를 수행하는 가장 좋은 방법은 출력 디렉토리를 $(SolutionDir)/build/bin으로 수정하는 property sheet입니다. 이 후, 작업 디렉토리를 $(SolutionDir)/build으로 설정합니다. 이는 다양한 프로젝트 디렉토리 사이에 퍼져있는 것보다 전개되는 것과 동일한 전체 구조입니다.

build 
|-- bin 
| |-- foo.exe 
| |-- libfoo.dll 
| `-- libbar.dll 
|-- plugins 
| |-- extender.py 
| `-- something.lua 
`-- skins 
    |-- default.skin 
    `-- white-and-gold.skin 

전반적으로, (오히려 소스보다) 구축 것들에 대한 고립 된 디렉토리를 갖는 것은 좋은 일이다. 궁극적 인 출력물이 어디 있는지 알고 버전 제어 시스템과의 통합을 용이하게하기 때문에 사용자 정의 빌드 단계 작성이 쉬워집니다. .exe, .lib, .so에 대해 ignore을 설정하는 대신 전체 디렉토리를 무시하도록 설정할 수 있기 때문에 버전 제어 시스템과 쉽게 통합 할 수 있습니다. , .dll 그리고 모든 작은 디렉토리마다 뭐든간에.

+0

필자의 진정한 요점은 Visual Studio가 복잡한 종속성으로 같은 파일을 복사하는 시간에 관한 것이 었습니다. 디스크 공간은 부수적이었습니다. 그러나 나는 나의 대답을 말한 방식이 각각에 대해 거의 같은 무게를 준다고 생각한다. –

2

내 출력 디렉터리를 변경하는 주된 이유는 Visual Studio에서 만들어야하는 중복 어셈블리 수와 파일 복사본 수를 줄이는 것입니다. 프로젝트 A가 프로젝트 B를 참조하고 프로젝트 C가 프로젝트 A와 B를 참조하면 Studio는 A를 빌드하고 A를 B에 복사 한 다음 B를 빌드 한 다음 A와 B를 C에 복사하고 C를 빌드해야합니다. 이제 어셈블리 A, 어셈블리 B의 두 복사본과 C.의 하나의 복사본을 만듭니다. Visual Studio는 출력을 한 디렉터리로 가리키며 단순히 A, B, C를 차례로 만듭니다. 프로젝트의 수와 종속성의 복잡성이 커짐에 따라 얼마나 많은 디스크 공간과 시간이 소요되는지 생각할 수 있습니다.

0

예를 들어 "다른"프로그램과 함께 배포해야하는 updater.exe가 있습니다. 그래서 빌드 경로를 "다른"프로그램 빌드 경로로 설정했습니다. 그렇게하면 필자는 항상 최신 버전의 "updater.exe"를 가지고 있다는 것을 알 수 있습니다.

그 중 하나의 이유가 있습니다.

관련 문제