Puede escribir un anotador personalizado como se explica aquí: http://msdn.microsoft.com/en-us/library/ms171471.aspx
Aquí hay un poco de código para empezar:
public class SummaryLogger : Logger
{
int warningCount = 0;
int errorCount = 0;
public override void Initialize(IEventSource eventSource)
{
eventSource.WarningRaised += eventSource_WarningRaised;
eventSource.ErrorRaised += eventSource_ErrorRaised;
eventSource.BuildFinished += eventSource_BuildFinished;
}
void eventSource_WarningRaised(object sender, BuildWarningEventArgs e)
{
warningCount++;
Console.WriteLine("Warning: " + e.Message);
}
void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
{
errorCount++;
Console.WriteLine("Error: " + e.Message);
}
void eventSource_BuildFinished(object sender, BuildFinishedEventArgs e)
{
Console.WriteLine("MSBuild Finished: " + errorCount + " errors | " + warningCount + " warnings.");
}
}
Este registrador registra advertencias, errores y Resume la cantidad de errores y advertencias. Deberá agregar un poco de código para el tiempo y los proyectos, para que sea exactamente lo que desea.
Para usarlo, se llaman MSBuild con los siguientes parametros añadidos a la misma:
/nologo /noconsolelogger /logger:pathTo/SummaryLogger.dll
También he intentado esto mamny formas y no creo que sea posible ... Por curiosidad, ¿qué hay de malo con la salida estándar? He encontrado que es muy útil para depurar problemas de compilación y puede borrarse fácilmente con una llamada 'cls' –
@NickNieslanik La salida estándar para la solución es grande, y el buffer de símbolo del sistema no es (sin modificaciones) lo suficientemente grande como para permitir revisa la salida de la consola completa, además de una gran cantidad de salida, como un archivo copiado, un archivo eliminado. No me interesa –
¿Por qué no utiliza el registrador de archivos para solucionar el problema del búfer de solicitud de comando? eso aliviaría al menos uno de los problemas. Puede usar el registrador de archivos para hacer cosas como "registrar errores en un archivo, advertencias en otro e información regular en un tercero". –