我注意到,当内容文件丢失时,我们的巡航控制服务器不会使构建失败。
我想在缺少javascript /图形文件等时使构建失败。如何使用从svn中提取的文件来验证项目文件?
答案 0 :(得分:19)
您可以创建要检查的目标,以确保所有内容文件都物理位于磁盘上,如果不是这样,则会引发错误。这是一个目标
<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">
Sayed Ibrahim Hashimi
我的书:Inside the Microsoft Build Engine : Using MSBuild and Team Foundation Build
答案 1 :(得分:1)
您还可以在.csproj中的 BeforeBuild 目标中添加错误条件,如下所示:
<Target Name="BeforeBuild">
<Error Condition="!Exists(%(Content.FullPath))"
Text="Missing Content file [%(Content.FullPath)]"/>
</Target>
BeforeBuild 将始终在构建项目时执行,因此您不需要将目标添加到Project属性的InitialTargets属性。