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?