How to fail an MSBuild when content files are missing
Asked Answered
P

2

16

I've noticed that our cruise control server does not fail the build when content files are missing.

I'd like to fail the build when javascript / graphics files etc are missing. How can I go about validating the project file with the files pulled from svn?

Pyromorphite answered 22/6, 2009 at 15:31 Comment(0)
I
21

You can create a target to check to make sure that all Content files are physically located on disk and raise an error if this is not the case. Here is such a target

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

You can make sure that this target is executed everytime by adding it to the InitialTargets attribute on the Project element. For example

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

Sayed Ibrahim Hashimi

My Book: Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build

Integrity answered 22/6, 2009 at 19:0 Comment(0)
T
3

You can also add the error condition in BeforeBuild Target available in .csproj like this:

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

BeforeBuild will always execute when building a project and so you do not require adding the target to InitialTargets attribute of the Project property.

Tetrabranchiate answered 21/7, 2016 at 17:44 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.