2011-01-10 8 views
1

MSBuild를 사용하여 소스 외부 빌드를 만들 수 있습니까?msbuild, Out-of-source 빌드 지원

Autotools 또는 CMake과 같은 다른 건물 시스템의 표준 사항입니다. 빌드 옵션을 실험하거나 하나의 소스 트리를 공유하려는 경우 (유용 할 수 있습니다) 유용합니다.

그런 일이 왜 필요한지 묻는 사람들은 다음과 같이 체크 아웃 (여기서는 4GB)을하고, 하나의 빌드를 만들고, 특정 리비전으로 돌아가서 첫 번째 빌드를 버리지 않고 다른 빌드를 수행 할 수 있습니다. 또는 VS의 모든 구성 설정을 거의 고려하지 않고 일부 사용자 지정 설정을 사용하여 버려지는 구성을 만들 수 있습니다. 또는 여러 자동 빌더간에 체크 아웃을 공유하십시오.

다른 경로로 별도의 구성을 정의 할 수 있지만이 작업은 (특히 여러 프로젝트에서 작업 할 때) 번거롭고 이러한 구성은 일반적인 VCS 작업으로 다른 개발자 (실험 할 때 피하고 싶습니다.)에게 전파됩니다.

+0

"외부 소스 디렉토리"가 의미하는 것은 분명하지 않습니다. 시나리오와 실제로 발생할 것으로 예상되는 것을 설명하십시오. – Filburt

+0

@ Filburt, 편집. – liori

답변

0

하나의 가능한 솔루션은 구성 항목을 별도의 .target 파일로 이동할 수 있습니다. 이들을 실험하고 싶다면 다른 개발자가 기본 .target 구성을 사용할 수있는 반면 .target 파일을 원하는 것으로 바꿀 수 있습니다.


소스를 구성 가능한 빌드 경로로 내 보내면 원본이 문제가되는지 아직 확실하지 않습니다. 소스를 실험 빌드 위치로 내보내는 데 너무 오래 걸릴 것이기 때문입니까? 실험 빌드에 사전 빌드 된 공유 구성 요소를 사용할 수 있습니까?


MSBuild를 Visual Studio 솔루션의 CLI로 사용하기 때문에 만료되는 것으로 생각됩니다. 틀림없이 MSBuild는 유연하고 복잡한 요구 사항을 해결하기 위해 상당한 노력이 필요합니다. 크루즈 컨트롤 (CruiseControl)과 같은 지속적인 통합 시스템은 Autotools 및 CMake에서 익숙한 사용 편의성과 유연성을 제공하기 때문에 찾고자하는 것입니다. "무료"가 요구 사항 중 하나가 아닌 경우 Team Foundation Server는 MSBuild를 구동하는 옵션 일 수 있습니다.

4GB 소스가 너무 커서 주어진 도구로 인해 많은 부분을 빠르게 움직여야합니다.

+0

그럼,이 상자에서 작동하지 않습니다, 그리고 프로젝트 파일을 해킹해야겠습니까? 슬픈, autotools와 cmake 모두 기본적으로 그렇게 할 수 있습니다. – liori

+0

@liori 특정 문제가 어디에서 발생했는지 상상하기가 어렵습니다. 필자가 Autotools 및 CMake에 대한 정보에서 수집 한 사용자 정의 빌드 및/또는 출력 위치를 지정할 수 있습니다. – Filburt

+0

이것은 빌드 시스템에서 기대하는 유연성 일뿐입니다. 예를 들어, 체크 아웃 (여기에 4GB)을 할 수 있고, 하나의 빌드를 만들고, 특정 리비전으로 돌아가서 첫 번째 빌드를 버리지 않고 다른 빌드를 수행 할 수 있습니다. 또는 VS의 모든 구성 설정을 거의 고려하지 않고 일부 사용자 지정 설정을 사용하여 버려지는 구성을 만들 수 있습니다. – liori

관련 문제