Предупреждение о сборке дисплея Azure-DevOps

Фон проблемы

Я работаю над проектом C#, в котором используется Azure DevOps для CI. У меня есть файл оболочки питания, который запускается, когда проект отправляется в Azure. Соответствующая часть файла сборки:

# $buildTools is the path to MSBuild.exe
# $solution is the path to the project's .sln file
& $buildTools $solution /t:Clean,Build /p:Configuration=Release,Platform=x86
if ($LASTEXITCODE -eq 0) {
  Write-Host 'Build completed successfully!'
} else {
  Write-Host '##vso[task.logissue type=error;]There were errors during the build of the application'
}

Проблема

В настоящее время $LASTEXITCODE может быть либо 0 (no errors), либо 1 (error). Если код выхода равен 0, все в порядке, и Azure показывает зеленый значок передачи; если он равен 1, Azure показывает красный значок ошибки. Однако когда в сборке появляются предупреждения, они отображаются в журналах, а в Azure отображается зеленый значок.

Цель

Моя цель - заставить Azure отображать желто-оранжевый значок предупреждения при наличии предупреждений. Возможно ли это и как? Спасибо вам большое за ваше время!

Попытка решения

В свойствах проекта C# для Warning level установлено значение 4; поэтому я попробовал эту модификацию скрипта Power Shell, но это не сработало.

& $buildTools $solution 4> 'warning.txt'

Обновить с помощью решения

Спасибо Ответ Диджея! Финальная строка сборки выглядит так:

# $warningsFile is a path to a file that will contain all the warnings
& $buildTools $solution /t:Clean,Build /p:Configuration=Release,Platform=x86 /fl1 "/flp1:$warningsFile;warningsonly"
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
5 485
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать это -> https://docs.microsoft.com/en-us/visualstudio/msbuild/obading-build-logs-with-msbuild?view=vs-2017#save-the-log-output-to-multiple-files и записывать все предупреждения в файл журнала, затем проверять, содержит ли файл журнала что-либо, а затем записывать предупреждения в вывод с помощью этих команд (https://github.com/Microsoft/azure-pipelines-tasks/blob/master/docs/authoring/commands.md)

Спасибо, что подарили мне надежду! Я изменил строку сборки на & $buildTools $solution /t:Clean,Build /p:Configuration=Release,Platform=x86 /fl1 /flp1:warningsonly;logfile=$warningsFile, где $warningsFile - это путь к файлу в том же каталоге. Однако эта строка вызывает следующую ошибку: The term 'logfile=$warningsFile' is not recognized as the name of a cmdlet, function, script file... Что вы порекомендуете мне попробовать дальше?

ful-stackz 19.11.2018 13:29

заключите свой список аргументов в "

D.J. 19.11.2018 13:36

Это вообще не работает, когда я заключаю аргументы в ", даже если я удаляю часть /fl /flp, это вызывает ошибку из-за ".

ful-stackz 19.11.2018 13:49

Я нашел решение! Если я оберну только часть /fl /flp с ", она будет работать, как ожидалось. Еще раз спасибо!

ful-stackz 19.11.2018 14:07

Другие вопросы по теме