2010-08-16 4 views
13

내 프로젝트 중 하나의 일부로 궁극적으로 일부 파일을 생성하는 "BeforeBuild"작업이 있습니다. 특히 작은 정적 클래스 (프로젝트에서 "컴파일하지 않음"으로 포함)를 자체 실행 파일에 컴파일 한 다음 실행하여 프로젝트에 포함 할 새 생성 클래스를 출력하는 외부 입력 파일을 전달합니다.MSBuild - 빌드에서 "정리"될 파일 추가

중간 파일을 프로젝트 $ (OutDir)에 저장하도록 프로그래밍했지만 "다시 작성"(및 궁극적으로 "정리")에서 이러한 파일을 가져 오지 않았습니다. 몇 가지 생각을하고 나면 $ (ProjectDir)에 바로 배치 된 최종 생성 클래스가 "Clean"에서도 삭제되어야한다는 것을 알았습니다.

Microsoft.Common.targets에 대한 조사에 따르면 중간 경로 (obj \ build \ assembly.FileListAbsolute.txt)에서 삭제할 파일을 쿼리 한 일부 "마스터 목록"이 있음이 드러났습니다.

내 새 파일을 MSBuild의이 목록에 추가하여 표준화 된 방법으로 정리할 수 있습니까? 아니면 "BeforeClean"(또는 "AfterClean") 대상 오버라이드가 더 적합할까요?

답변

12

MSBuild article by Hashimi에서합니다 (FileListAbsolute.txt 당신이보고있는 기록 시스템 임) FileWrites 메커니즘의 자세한 내용은 청소 프로세스 확장을 참조하십시오. 그리고 내년에 빌드 스크립트를 작성하는 데 2 ​​시간 이상을 소비한다면 지금 바로 the book을 얻으십시오.

+0

Perfect! * Clean Process 확장 *은 정확히 내가 찾고 있던 것이 었습니다! 내년에 빌드 스크립트에 2 시간 이상을 쓸 필요가 없기를 바랄뿐입니다.하지만이 책은 가까운 장래에 내 책상으로 갈 것입니다. –

+0

@ Jeff Wight : 당신은 그것을 숨길 수 없습니다 - MSBuild-ese를 이해할 가치가 있습니다. 시간이 지나면 우아하게 감상 할 수도 있습니다! http://stackoverflow.com/questions/47884/is-it-worth-learning-to-use-msbuild 및 http://stackoverflow.com/questions/1326445/is-there-a-good-tutorial-on- msbuild-scripts –

+5

그래, 내가 Ruben에 동의한다! –

관련 문제