Не удается подключить FileLogger при программном запуске MSBuild 4.0

Я пытаюсь получить журналы при запуске MSBuild 4.0 в моем коде С#.

var fileLogger = new Microsoft.Build.BuildEngine.FileLogger() { Parameters = @"C:\MSBuild.log") };

var projectCollection = new ProjectCollection();
var buildParamters = new BuildParameters(projectCollection);
buildParamters.Loggers = new List<Microsoft.Build.Framework.ILogger>() { new Microsoft.Build.BuildEngine.FileLogger() { Parameters = @"C:\MSBuild.log" }};

var globalProperty = new Dictionary<String, String>();
globalProperty.Add("Configuration", "Debug");
globalProperty.Add("Platform", "Any CPU");

BuildManager.DefaultBuildManager.ResetCaches();

var buildRequest = new BuildRequestData(projectFile, globalProperty, null, new String[] { "Clean", "Build" }, null);
var buildResult = BuildManager.DefaultBuildManager.Build(buildParamters, buildRequest);

Однако после завершения сборки (успешной или неудачной) файл журнала не создается. Я что-то пропустил?


person Jim    schedule 08.08.2014    source источник


Ответы (2)


Проблема в параметрах, переданных в FileLogger, должно быть так, обратите внимание на logfile= :

Parameters = @"logfile=c:\MSBuild.log"

см. http://msdn.microsoft.com/en-us/library/microsoft.build.buildengine.consolelogger.parameters%28v=vs.121%29.aspx

person stijn    schedule 08.08.2014
comment
У меня нет возможности проверить это, но, надеюсь, это оно. - person Jim; 08.08.2014

В дополнение к ответу stijn:

Вот все доступные параметры:

LogFile=C:\LogPath\LogFile.log;Добавить;NoAutoFlush;Кодировка=UTF-8;

По умолчанию (если параметр не указан):

Файл журнала: msbuild.log (будет создан в текущем каталоге, например Directory.GetCurrentDirectory())

Добавить: false (без добавления)

NoAutoFlush: false (автоматический сброс включен)

Кодировка: System.Text.Encoding.Default

person Kamarey    schedule 19.07.2016