TFS2010 - Registrando dentro da atividade de construção customizada

Temos uma atividade de construção personalizada, que executa a execução de nossa construção. Usamos uma atividade customizada, porque os compiladores que usamos são muito especiais e o sistema é bem antigo e não queremos reescrever tudo para que ele funcione com o MSBuild. No entanto, o repositório é gerenciado pelo TFS e a compilação deve ser acionada pelo TFS.

Dentro da atividade de construção personalizada, gostaria de registrar o status. Atualmente, estou fazendo isso com este pedaço de código 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>

Funciona, no entanto, há um grande problema: nossa atividade de construção personalizada leva cerca de 6 horas para ser executada (como eu disse, é um projeto de software antigo e também grande). O problema é que as mensagens de log aparecem somente dentro do resumo de compilação do TFS depois que a ação de compilação é concluída. Então, após 6 horas de construção, todas as mensagens de log aparecem ao mesmo tempo.

O que gostaríamos de ter é que as mensagens sejam mostradas conforme elas são registradas. Para que o cara da build possa ver onde a build está atualmente, e também ver o que aconteceu.

Uma solução alternativa implementada até agora é que a atividade de construção personalizada use uma fila de mensagens que é compartilhada com a parte de fundação do fluxo de trabalho. Então, dentro da fundação workflow, criei uma instrução paralela que executa a construção e ao mesmo tempo esvazia a fila de mensagens e as exibe. Aqui está uma captura de tela dessa construção:

No entanto, o resultado é bastante decepcionante. Isso é o que sai:

O vermelho é a mensagem de registro real da compilação, tudo ao redor é apenas o loop while e as outras coisas ...

É possível desativar essas mensagens de log?

questionAnswers(2)

yourAnswerToTheQuestion