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?
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
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With