如何访问的MSBuild错误的详细信息 [英] How to access error details in MSBuild

查看:340
本文介绍了如何访问的MSBuild错误的详细信息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要创建MSBuild项目出现错误时,将发送一个详细的电子邮件。我使用的MSBuild中社区任务包中的邮件任务。但我不知道如何错误的详细信息传递给这个任务 - ?有错误或任何东西predefined变量

 <目标名称=所有>
  < CallTarget目标=DoSomething的/>
  <的OnError ExecuteTargets =ErrorEmail/>
< /目标>

<目标名称=ErrorEmail>
  <邮件SMTPSERVER =mysrv从=我@ mysrv为=错误@ mysrv主题=发生错误
      身体=错误信息:/>
< /目标>
 

解决方案

只有predefined属性将是$(MSBuildLastTaskResult),但它在你的例子仅会是没有用处的值假 。你需要要么建立一个error属性里面DoSomething的,要不然确保日志文件已经创建(请参见MSBuild文件记录器参数)和发送日志文件内容的电子邮件。考虑是这样的:

 > MSBuild的MyProject.proj / FL /flp:v=detailed;logfile=mylog.txt

<目标名称=ErrorEmail>
   < ReadLinesFromFile
      文件=mylog.txt
      行=_ ErrorLines
      />
   <邮件
      SMTPSERVER =mysrv
      从=我@ mysrv
      为了=错误@ mysrv
      主题=发生错误
      身体=错误信息:@(_ ErrorLines,'%0D 0A%')
      />
< /目标>
 

I'm creating MSBuild Project that will send a detailed email when an error occurs. I am using a Mail Task from MsBuild Community Tasks package. But I don't know how to pass error details to this task - is there any predefined variable with error or something ?

<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>

解决方案

The only predefined property would be $(MSBuildLastTaskResult), but it in your example will only ever have the value "false" which isn't useful. You'll need to either set up an error property inside DoSomething, or else ensure that a log file has been created (see msbuild file logger parameters) and send the log file contents in the email. Consider something like this:

> 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>

这篇关于如何访问的MSBuild错误的详细信息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆