Errores de msbuild de correo electrónico: solo cuando hay errores
-
26-10-2019 - |
Pregunta
msbuild MyProject.proj /fl /flp:v=detailed;logfile=mylog.txt
msbuild MyProject.proj /t:ErrorEmail
He implementado esto y funciona cuando hay errores. Pero también está enviando un correo electrónico cuando no hay errores. ¿Cómo puedo configurar una condición si el archivo está vacío, o hay un recuento de líneas 0 en las líneas de lecturaFILE?
> <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>
Solución
Asumiendo ErrorFileContents no está vacío en caso de un error, puede iterar a través de sus elementos para establecer un indicador de condición.
<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')"
/>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow