2011-04-30 3 views
3

오류가 발생하면 자세한 전자 메일을 보낼 MSBuild 프로젝트를 만듭니다. MsBuild Community Tasks 패키지의 Mail Task를 사용하고 있습니다. 하지만이 작업에 오류 세부 정보를 전달하는 방법을 모르겠습니다. 미리 정의 된 변수에 오류가 있습니까?MSBuild에서 오류 세부 정보에 액세스하는 방법

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

<Target Name="ErrorEmail"> 
    <Mail SmtpServer="mysrv" From="[email protected]" To="[email protected]" Subject="An error occured" 
     Body="Error details: " /> 
</Target> 

답변

1

유일한 미리 정의 된 속성은 $ (MSBuildLastTaskResult) 될 것이다, 그러나 당신의 예는 오직 유용하지 않은 값이 "false"를해야합니다. DoSomething 안에 error 속성을 설정하거나 로그 파일이 만들어 졌는지 확인하고 (msbuild file logger 매개 변수 참조) 전자 메일에 로그 파일 내용을 보내야합니다. 이 같은 고려 :

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

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

니스하지만,이 오류를 가지고 : C가 : \ AccuRev \ Build_2012_01_02 \ ASA.Core.Services \ ErrorHandlers.targets (24,9) : 어 ROR의 MSB3501이 :에서 라인을 읽을 수 없습니다를 파일 "mylog.txt". 이 프로세스는 다른 프로세스에서 사용 중이기 때문에 파일 'c : \ AccuRev \ Build_2012_01_02 \ ASA.Core.Services \ mylog.txt'에 액세스 할 수 없습니다. – NealWalters

+0

새로운 질문이 시작되었습니다 : http://stackoverflow.com/questions/8728883/email-errors-in-msbuild-readlinesfromfile-is-being-used-by-other-process – NealWalters

관련 문제