콘텐츠 파일이없는 경우 크루즈 컨트롤 서버가 빌드를 실패하지 않는 것으로 나타났습니다.콘텐츠 파일이 없을 때 MSBuild를 실패하는 방법
자바 스크립트/그래픽 파일 등이없는 경우 빌드를 실패하고 싶습니다. svn에서 가져온 파일로 프로젝트 파일의 유효성을 검사하려면 어떻게해야합니까?
콘텐츠 파일이없는 경우 크루즈 컨트롤 서버가 빌드를 실패하지 않는 것으로 나타났습니다.콘텐츠 파일이 없을 때 MSBuild를 실패하는 방법
자바 스크립트/그래픽 파일 등이없는 경우 빌드를 실패하고 싶습니다. svn에서 가져온 파일로 프로젝트 파일의 유효성을 검사하려면 어떻게해야합니까?
대상을 만들어서 모든 컨텐츠 파일이 물리적으로 디스크에 있는지 확인하고, 그렇지 않은 경우 오류를 발생시킬 수 있습니다. 여기에 그러한 타겟이 있습니다
<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
또한이 같은 .csproj에 BeforeBuild 대상 사용할 수있는 오류 조건을 추가 할 수 있습니다
<Target Name="BeforeBuild">
<Error Condition="!Exists(%(Content.FullPath))"
Text="Missing Content file [%(Content.FullPath)]"/>
</Target>
BeforeBuild은 빌드시 항상 실행됩니다. 프로젝트이므로 Project 속성의 InitialTargets 특성에 대상을 추가 할 필요가 없습니다.