Вывод 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}
                }

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

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