【问题标题】:How to fail an MSBuild when content files are missing缺少内容文件时如何使 MSBuild 失败
【发布时间】:2016-07-22 01:44:15
【问题描述】:

我注意到,当内容文件丢失时,我们的巡航控制服务器不会导致构建失败。

当缺少 javascript/图形文件等时,我希望构建失败。如何使用从 svn 中提取的文件来验证项目文件?

【问题讨论】:

    标签: visual-studio-2008 msbuild cruisecontrol.net


    【解决方案1】:

    您可以创建一个目标来检查以确保所有内容文件都物理上位于磁盘上,如果不是这样,则会引发错误。就是这样一个目标

    <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

    【讨论】:

      【解决方案2】:

      您还可以在 BeforeBuild Target 中添加错误条件,该目标在 .csproj 中可用,如下所示:

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

      BeforeBuild 将始终在构建项目时执行,因此您不需要将目标添加到 Project 属性的 InitialTargets 属性中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-08-10
        • 1970-01-01
        • 1970-01-01
        • 2017-08-12
        • 1970-01-01
        • 1970-01-01
        • 2023-02-11
        相关资源
        最近更新 更多