Вызвать активность процесса, не регистрируя ошибки в файле журнала - PullRequest
5 голосов
/ 01 декабря 2011

Я пытаюсь использовать процесс Invoke для вызова исполняемого файла из моего рабочего процесса Windows в моей сборке TFS 2010.Но когда я смотрю на файл журнала, он не регистрирует ошибки.Я использовал WriteBuildMessage и WriteBuildwarning в своей активности процесса вызова.Я также установил имя файла, рабочий каталог и т. Д. В активности.

Может кто-нибудь указать, почему он не регистрируется?

Ответы [ 2 ]

7 голосов
/ 01 декабря 2011

Вы можете сделать что-то вроде этого:
enter image description here

В этом случае вы должны убедиться, что Message установлены следующим образом:
enter image description here
enter image description here

С этими параметрами, установленными, как показано, я улавливаю то, что вы, кажется, после.

Кроме того, вы можете проверить Properties вашего InvokeProcess:
Установить Result в строковую переменную и затем установить в последующей WriteBuildMessage этой строковой переменной значение Message. Таким образом, вы дополнительно поймаете возврат вашего вызванного процесса.

EDIT
Другая распространенная вещь, которую вы, возможно, упустили из виду - это BuildMessageImportance: если он не установлен как High, сообщения НЕ отображаются по умолчанию. Подробность ведения журнала (= Normal). Смотрите здесь для некоторого фона.

3 голосов
/ 02 декабря 2011

В вашем Invoke Process вы хотите установить свойство Result для обновления переменной (возвращает Int, поэтому давайте назовем его ExitCode), под вашим Invoke Process (но все еще в Agent Scope) вы можете указать If, чтобы вы могли установить для этого условия значение ExitCode <> 0 и делать все, что вам нравится, в случае сбоя (например, сбой сборки).

Также, как примечание, если ваш WriteBuildMessage ничего не показывает в вашем журнале, вам нужно установить Importance в Microsoft.TeamFoundation.Build.Client.BuildMessageImportance.High, что ниже, и оно не будет отображаться на уровне ведения журнала Normal.

...