Я пытаюсь преобразовать существующий инструмент командной строки в пользовательскую задачу msbuild.
Этот инструмент регистрирует сообщения и ошибки, используя класс System.Console.
Я добавил в сборку инструмента класс, который наследуется от Microsoft.Build.Utilities.Task и вызывает основную функцию инструмента, и пользовательский инструмент работает нормально - но сообщения / ошибки не отображаются (в окне вывода Visual Studio).
Я бы хотел избежать изменения исходного кода инструмента (в противном случае я мог бы изменить каждый «Console.Error.WriteLine» на «Log.LogError»).
Я думал об изменении потоков консоли stdout и stderr, вызывая Console.SetOut и SetError перед вызовом основной функции инструмента. Для этого мне нужно реализовать класс, который наследуется от TextWriter.
Итак, мои вопросы:
- Почему записи System.Console не
автоматически отправляется в журнал
BuildSystem
- наследует от TextWriter и устанавливает потоки консоли - хорошо
решение этой проблемы?
- Возможно, кто-то уже сделал это
работать и написал TextWriter
реализация для отправки
вывод / ошибка в журнал msbuild?
- Если нет, где я могу найти
ссылочный код, который дает пример
класса, который реализует
TextWriter
Спасибо.