Электронная почта MSBuild ошибки - только при наличии ошибок - PullRequest
0 голосов
/ 10 января 2012
 msbuild MyProject.proj /fl /flp:v=detailed;logfile=mylog.txt
 msbuild MyProject.proj /t:ErrorEmail 

Я реализовал это, и оно работает, когда есть ошибки. Но это также отправка электронного письма, когда нет ошибок. Как настроить условие, если файл пуст или в ReadLinesFromFile содержится 0 строк?

> <Target Name="ErrorEmail">    
>   <ReadLinesFromFile
>       File="mylog.txt"
>       Lines="_ErrorLines"
>       />
>   <MSBuild.Community.Tasks.Mail
>       SmtpServer="mailhost.amsa.com"
>       To="$(ErrorEmails)"
>       From="$(FromEmail)"
>       Subject="Build failure for $(SolutionName)" 
>       Body="Error details: @(ErrorFileContents, '%0D%0A')"
>       />
>  </Target>

1 Ответ

1 голос
/ 10 января 2012

Предполагая, ErrorFileContents не является пустым в случае ошибки, вы можете перебирать его элементы для установки флага условия.

   <CreateProperty Value="true">
      <Output Condition="'%(ErrorFileContents.Identity)' != ''"
          TaskParameter="Value"
          PropertyName="SendMail" />
    </CreateProperty>

    <MSBuild.Community.Tasks.Mail Condition="'$(SendMail)' == true"
        SmtpServer="mailhost.amsa.com"
        To="$(ErrorEmails)"
        From="$(FromEmail)"
        Subject="Build failure for $(SolutionName)"
        Body="Error details: @(ErrorFileContents, '%0D%0A')"
       />
...