Почему TeamCity PowerShell Build Runner отображает трассировку стека вместо вывода ошибок? - PullRequest
1 голос
/ 27 июня 2019

Я использую готовый PowerShell Bund Runner TeamCity для запуска скрипта, предоставленного на шаге сборки.Сценарий эффективен:

$ErrorActionPreference = "Stop"

$match = select-string "%EwlProjectPackagesConfigPath%" -pattern "<package id=`"(Ewl)`" version=`"([0-9\.pr-]+)`".+/>"
$ewlPackage = $match.Matches.Captures.Groups[1]
$version = $match.Matches.Captures.Groups[2]

$devUtil = Get-ChildItem "%PackagesDirectory%\$ewlPackage.$version\Development Utility\EnterpriseWebLibrary.DevelopmentUtility.exe"
& $devUtil "%SolutionDirectory%" UpdateAllDependentLogic
if ($LastExitCode -ne 0) {
    Throw "Process exit code: $LastExitCode";

Exe, вызываемая оператором &, сталкивается с проблемой.Он выводит на стандартную ошибку и возвращает код 1. Вот скриншот вывода в TeamCity:

Screenshot of TeamCity build output where it shows a PowerShell stack trace instead of the full error output

Вывод в TeamCity показывает только одинстрока вывода ошибки (26.06.2009 14:48:55: не удалось обновить логику базы данных.), а затем трассировка стека проблемы в сценарии.

Я не могу воспроизвести этоза пределами TeamCity.Если я сохраню скрипт на своем рабочем столе и выполню следующую команду, которая должна совпадать с той, что выполняется TeamCity:

C: \ Windows \ System32 \ WindowsPowerShell \ v1.0 \ powershell.exe -NoProfile -NonInteractive -ExecutionPolicy ByPass -File "C: \ Users \ Administrator \ Desktop \ Test.ps1"

Затем я получаю около ста строк вывода ошибок (что я хотел бывидеть в TeamCity), и я вообще не вижу трассировки стека.

  1. Почему TeamCity не фиксирует весь вывод ошибок?
  2. Как TeamCity отображает трассировку стекаи почему я не запускаю скрипт таким же образом?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...