in TeamCity.MSBuild.Logger/DeferredMessageWriter.cs [115:198]
public void DisplayDeferredTargetStartedEvent(BuildEventContext e)
{
if (_context.Parameters.ShowOnlyErrors || _context.Parameters.ShowOnlyWarnings)
{
return;
}
var targetStartedEvent = _buildEventManager.GetTargetStartedEvent(e);
if (targetStartedEvent == null || targetStartedEvent.ShowTargetFinishedEvent)
{
return;
}
targetStartedEvent.ShowTargetFinishedEvent = true;
DisplayDeferredStartedEvents(targetStartedEvent.TargetBuildEventContext);
var projectStartedEvent = _buildEventManager.GetProjectStartedEvent(e);
if (projectStartedEvent == null)
{
throw new InvalidOperationException("Project Started should not be null in deferred target started");
}
var projectFile = projectStartedEvent.ProjectFile ?? string.Empty;
string targetName;
var shortTargetName = $"Target \"{targetStartedEvent.TargetName}\"";
if (_context.IsVerbosityAtLeast(LoggerVerbosity.Diagnostic) || (_context.Parameters.ShowEventId ?? false))
{
targetName = _stringService.FormatResourceString("TargetMessageWithId", targetStartedEvent.TargetName, targetStartedEvent.TargetBuildEventContext.TargetId);
}
else
{
targetName = targetStartedEvent.TargetName;
}
if (_context.IsVerbosityAtLeast(LoggerVerbosity.Detailed))
{
if (string.Equals(projectFile, targetStartedEvent.TargetFile, StringComparison.OrdinalIgnoreCase))
{
if (!string.IsNullOrEmpty(targetStartedEvent.ParentTarget))
{
_hierarchicalMessageWriter.StartBlock(shortTargetName);
_messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedProjectDepends", targetName, projectFile, targetStartedEvent.ParentTarget), true);
}
else
{
_hierarchicalMessageWriter.StartBlock(shortTargetName);
_messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedProjectEntry", targetName, projectFile), true);
}
}
else
if (!string.IsNullOrEmpty(targetStartedEvent.ParentTarget))
{
_hierarchicalMessageWriter.StartBlock(shortTargetName);
_messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedFileProjectDepends", targetName, targetStartedEvent.TargetFile, projectFile, targetStartedEvent.ParentTarget), true);
}
else
{
_hierarchicalMessageWriter.StartBlock(shortTargetName);
_messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedFileProjectEntry", targetName, targetStartedEvent.TargetFile, projectFile), true);
}
}
else
{
_hierarchicalMessageWriter.StartBlock(shortTargetName);
_messageWriter.WriteLinePrefix(targetStartedEvent.TargetBuildEventContext, targetStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("TargetStartedFileProjectEntry", targetName, targetStartedEvent.TargetFile, projectFile), true);
}
_logWriter.ResetColor();
ShownBuildEventContext(e);
}