2009-06-22 3 views
13

콘텐츠 파일이없는 경우 크루즈 컨트롤 서버가 빌드를 실패하지 않는 것으로 나타났습니다.콘텐츠 파일이 없을 때 MSBuild를 실패하는 방법

자바 스크립트/그래픽 파일 등이없는 경우 빌드를 실패하고 싶습니다. svn에서 가져온 파일로 프로젝트 파일의 유효성을 검사하려면 어떻게해야합니까?

답변

17

대상을 만들어서 모든 컨텐츠 파일이 물리적으로 디스크에 있는지 확인하고, 그렇지 않은 경우 오류를 발생시킬 수 있습니다. 여기에 그러한 타겟이 있습니다

<Target Name="ValidateContentFiles"> 
    <Error Condition="!Exists(%(Content.FullPath))" 
     Text="Missing Content file [%(Content.FullPath)]"/> 
</Target> 

이 타겟은 Project 요소의 InitialTargets 속성에 추가하여 매번 실행되도록 할 수 있습니다. 예를 들어

<Project InitialTargets="ValidateContentFiles" 
     ToolsVersion="3.5" DefaultTargets="Build" 
     xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> 

사예드 이브라힘 하시

내 도서 : Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

0

또한이 같은 .csproj에 BeforeBuild 대상 사용할 수있는 오류 조건을 추가 할 수 있습니다

<Target Name="BeforeBuild"> 
<Error Condition="!Exists(%(Content.FullPath))" 
Text="Missing Content file [%(Content.FullPath)]"/> 
</Target> 

BeforeBuild은 빌드시 항상 실행됩니다. 프로젝트이므로 Project 속성의 InitialTargets 특성에 대상을 추가 할 필요가 없습니다.

관련 문제