В задаче MSBuild, как я могу получить доступ ко всем предупреждениям, сгенерированным сборкой?

Моя общая цель - прочитать все предупреждения в конце сборки решения, а затем зарегистрировать их как ошибки. Это отличается от параметра TreatWarningsAsErrors, потому что это также должно создавать двоичные файлы для проектов, которые имели эти предупреждения.

Я ожидаю решить эту проблему с помощью пользовательской задачи MSBuild, но я не знаю, что мне нужно, чтобы передать ее из файла.targets.

РЕДАКТИРОВАТЬ: я не думаю, что это дубликат этого вопроса, потому что это касается анализа журнала для определенной строки и выдачи ошибки для этого конкретного кода. Я хочу получить список всех предупреждений в сборке, независимо от их содержания.

1 ответ

Решение

Вы не можете получать предупреждения о сборке из задачи, поскольку она просто не имеет доступа к этой информации. Предупреждения выдаются и отправляются в инфраструктуру ведения журналов MS Build и обрабатываются там, что полностью оторвано от выполнения задачи.

Однако вы можете написать собственный регистратор для отслеживания предупреждений, генерируемых сборкой. С вашим пользовательским регистратором, когда возникает событие предупреждения, просто запишите его, а затем, когда сборка завершится, вы можете делать с этой информацией все, что захотите.

Смотрите документацию здесь и здесь о том, как написать собственный регистратор.

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