2013-07-03 2 views
0

msbuild 작업을 사용하여 프로젝트를 빌드하는 일부 msbuild 스크립트를 만들었습니다. 빌드 할 프로젝트 목록을 매개 변수로 전달합니다 (솔루션 파일 아님).VS2010 컴파일이 수정되지 않은 파일을 건너 뛰는 방법은 무엇입니까?

VS2010에서 파일을 수정하지 않고 두 번째로 솔루션을 빌드하면 아무 것도 변경되지 않았 음을 감지하므로 거의 동시에 완료됩니다.

msbuild 스크립트를 실행하면 두 번째/세 번째/네 번째 시간이 같은 시간이 걸립니다.

msbuild를 vs2010과 동일하게 동작시키는 방법에 대한 아이디어가 있으십니까?

감사합니다. Eran.

답변

1

Microsoft에서 제공하는 많은 MSBuild 작업은 IncrementallBuild 또는 Filetracker을 사용하여 주어진 파일의 출력을 생성하는 데 사용 된 파일을 추적합니다. 입력과 출력 간의 관계 알기 MSBuild는 종속성 그래프를 만들 수 있습니다.

출력 파일의 타임 스탬프와 모든 입력 파일을 비교하면 많은 작업에서 실행을 제거 할 수 있습니다. 주어진 출력 파일에 대한 모든 입력 파일의 타임 스탬프가 출력 파일보다 "낮거나/앞에"있으면 입력 파일이 수정되지 않았 음을 의미하고 MSBuild는이 작업의 실행을 건너 뛸 수 있습니다.

VC++ 프로젝트의 경우이 정보는 * .tlog 파일 (프로젝트의 IntermediateDirectory $ (IntDir)에 저장 됨)에 기록됩니다. 대상 재 구축을 실행하면 IncrementalBuild 기능으로 건너 뛸 수 있습니다. rebeuild는 정리 및 빌드 (즉, tlog 파일이 삭제됨)를 의미하기 때문입니다.

관련 문제