如何访问的MSBuild错误的详细信息 [英] How to access error details in 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屋!