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