protected virtual void BuildFinishedHandler(object sender, BuildFinishedEventArgs buildEvent)
{
if (buildEvent == null)
throw new ArgumentNullException("buildEvent");
// NOTE: This may run on a background thread!
MessageImportance importance = buildEvent.Succeeded ? MessageImportance.Low : MessageImportance.High;
QueueOutputText(importance, Environment.NewLine);
QueueOutputEvent(importance, buildEvent);
// flush output and error queues
ReportQueuedOutput();
ReportQueuedTasks();
}