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

2024-03-14

我们有一个在夜间构建之前运行的流程。如果该过程失败,它将生成一个文本文件。我需要做的就是检查该文件是否存在,如果存在,则会导致 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" />

这给出了带有以下输出的传递构建:

Task "CreateProperty"
Done executing task "CreateProperty".
Task "Message"
  QAWizardProTestPassed did not pass
Done executing task "Message".
Task "ReadLinesFromFile"
Done executing task "ReadLinesFromFile".
Task "Message"
  FileContents: 
Done executing task "Message".

我知道上面的内容可能有点矫枉过正,但我​​只需要一些有用的东西!我在这里缺少什么?


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

<Error Condition="Exists('C:\Process\Fail.txt')" Text="Process did not pass!" /> 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果文件存在,如何在 MSBuild 中导致错误? 的相关文章

随机推荐