Как получить доступ к сведениям об ошибках в MSBuild - PullRequest
3 голосов
/ 30 апреля 2011

Я создаю проект MSBuild, который отправит подробное электронное письмо при возникновении ошибки.Я использую почтовое задание из пакета MsBuild Community Tasks.Но я не знаю, как передать детали ошибки в эту задачу - есть ли предопределенная переменная с ошибкой или что-то в этом роде?

<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 Ответ

1 голос
/ 01 мая 2011

Единственное предопределенное свойство будет $ (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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...