如何在MSBuild中访问错误详细信息

时间:2011-04-30 19:04:40

标签: .net msbuild

我正在创建MSBuild Project,它会在发生错误时发送详细的电子邮件。我正在使用MsBuild社区任务包中的邮件任务。但我不知道如何将错误细节传递给此任务 - 是否有任何预定义的变量有错误或什么?

<Target Name="All">
  <CallTarget Targets="DoSomething" />
  <OnError ExecuteTargets="ErrorEmail"/>
</Target>

<Target Name="ErrorEmail">
  <Mail SmtpServer="mysrv" From="me@mysrv" To="error@mysrv" Subject="An error occured"
      Body="Error details: " />
</Target>

1 个答案:

答案 0 :(得分:1)

唯一预定义的属性是$(MSBuildLastTaskResult),但在您的示例中,它只会具有值“false”,这是无用的。您需要在DoSomething中设置错误属性,或者确保已创建日志文件(请参阅msbuild文件记录器参数)并在电子邮件中发送日志文件内容。考虑这样的事情:

> msbuild MyProject.proj /fl /flp:v=detailed;logfile=mylog.txt

<Target Name="ErrorEmail">
   <ReadLinesFromFile
      File="mylog.txt"
      Lines="_ErrorLines"
      />
   <Mail
      SmtpServer="mysrv"
      From="me@mysrv"
      To="error@mysrv"
      Subject="An error occured"
      Body="Error details: @(_ErrorLines, '%0D%0A')"
      />
</Target>