Skip to main content
 首页 » 编程设计

msbuild之如果文件存在,如何在MSBuild中引起错误

2024年10月25日52Terrylee

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