如果存在文件,如何在MSBuild中导致错误?

如果存在文件,如何在MSBuild中导致错误?,msbuild,Msbuild,我们有一个在夜间构建之前运行的流程。如果进程失败,它将生成一个文本文件。我需要做的只是检查文件是否存在,如果存在,则会导致MSBuild失败 我目前尝试了以下方法: <CreateProperty Condition="Exists('C:\Process\Fail.txt')" Value="false"> <Output TaskParameter="Value" PropertyName="ProcessTestPassed"/> </Crea

我们有一个在夜间构建之前运行的流程。如果进程失败,它将生成一个文本文件。我需要做的只是检查文件是否存在,如果存在,则会导致MSBuild失败

我目前尝试了以下方法:

<CreateProperty Condition="Exists('C:\Process\Fail.txt')"
      Value="false">
  <Output TaskParameter="Value" PropertyName="ProcessTestPassed"/>
</CreateProperty>
<Message Text="Process did not pass" Condition="Exists('C:\Process\Fail.txt')" ContinueOnError="false" />

<ReadLinesFromFile File="C:\Process\Fail.txt"                  Condition="'$(ProcessTestPassed)'=='false'" ContinueOnError="false" >
  <Output TaskParameter="Lines" ItemName="FileContents" />
</ReadLinesFromFile>
<Message Text="FileContents: $(FileContents)"  Condition="'$(ProcessTestPassed)'=='false'" ContinueOnError="false" />

我知道上面说的可能有些过头了,但我只是需要一些有用的东西!我在这里遗漏了什么?

正如@dprice在他的评论中指出的那样,最好的解决方案是:

<Error Condition="Exists('C:\Process\Fail.txt')" Text="Process did not pass!" /> 


我认为我找到了一个可接受的解决方案:这实际上是一个好的解决方案。问题在于您将
错误
标记放在哪里。在我的例子中,我得到了以下错误:
error:不再支持将标记作为元素的子元素。将此标记放置在目标中,并将目标的名称添加到元素的“InitialTargets”属性中,该元素在like下工作。(Msvs 2015)
<Error Condition="Exists('C:\Process\Fail.txt')" Text="Process did not pass!" />