TFS2010 - ведение журнала внутри пользовательской сборки
У нас есть пользовательская операция сборки, которая выполняет выполнение нашей сборки. Мы используем пользовательское действие, потому что используемые нами компиляторы очень особенные, а система довольно старая, и мы не хотим переписывать все это, чтобы оно работало с MSBuild. Однако хранилище управляется TFS, и сборка должна запускаться TFS.
Внутри пользовательской деятельности по сборке я хотел бы записать статус. В настоящее время я делаю это с этим фрагментом кода C #:
<code>private void LogMessage(String message, CodeActivityContext context) { BuildInformationRecord<BuildMessage> record = new BuildInformationRecord<BuildMessage>() { Value = new BuildMessage() { Importance = BuildMessageImportance.High, Message = message, }, }; context.Track(record); } </code>
Это работает, однако есть одна большая проблема: выполнение пользовательской сборки занимает около 6 часов (как я уже сказал, это старый, а также большой программный проект). Проблема заключается в том, что сообщения журнала появляются внутри сводки сборки TFS только после завершения действия сборки. Таким образом, после 6 часов сборки все сообщения журнала появляются сразу.
Мы хотели бы, чтобы сообщения отображались по мере их регистрации. Чтобы парень сборки мог видеть, где сейчас находится сборка, а также видеть, что произошло.
Один из обходных путей, который я реализовал до сих пор, заключается в том, чтобы пользовательское действие по сборке использовало Очередь сообщений, которая используется совместно с фундаментальной частью рабочего процесса. Затем внутри основы рабочего процесса я создал параллельный оператор, который выполняет сборку и одновременно очищает очередь сообщений и отображает их. Вот скриншот этой конструкции:
Тем не менее, результат довольно разочаровывает. Вот что выходит:
Красное - это фактическое сообщение журнала сборки, все вокруг него - просто цикл while и другие вещи ...
Можно ли отключить эти сообщения журнала?