Вывод MSBUILD с использованием C#
Я пытаюсь построить файл решения с использованием кода C# с помощью приложения WPF. Пожалуйста, найдите фрагмент кода ниже:
var buildEngine = new Engine();
var project = new Project(buildEngine);
project.Load(<pathToCsProjFile>);
project.SetProperty("Configuration", "Debug");
var success = project.Build();
if (success)
{
MessageBox.Show("Build Succeeded");
}
else
{
MessageBox.Show("Build Failed");
}
Когда я запускаю приведенный выше код, переменная "success" содержит значение false. Есть ли способ захватить вывод проекта и отобразить его в текстовом блоке или любом элементе управления WPF. Мне нужно увидеть ошибки сборки, если таковые имеются в приложении.
2 ответа
Да, есть способ увидеть все ошибки сборки, вам нужно реализовать ILogger
интерфейс и передать этот экземпляр в Project.Build(ILogger)
метод.
Для простого примера вы можете проверить раздел примера страницы msdn.
В параметрах сборки вы можете указать логгер
new BuildParameters()
{
DetailedSummary = true,
Loggers = new List<ILogger>(){logger}
}
тогда вам нужно будет создать собственный регистратор, который выводит в строку или поток, чтобы позже вы могли прочитать его