in TeamCity.MSBuild.Logger/DeferredMessageWriter.cs [41:113]
public void DisplayDeferredProjectStartedEvent(BuildEventContext e)
{
if (_context.Parameters.ShowOnlyErrors || _context.Parameters.ShowOnlyWarnings || _context.SkipProjectStartedText)
{
return;
}
var projectStartedEvent = _buildEventManager.GetProjectStartedEvent(e);
if (projectStartedEvent == null || projectStartedEvent.ShowProjectFinishedEvent)
{
return;
}
projectStartedEvent.ShowProjectFinishedEvent = true;
var parentProjectStartedEvent = projectStartedEvent.ParentProjectStartedEvent;
if (parentProjectStartedEvent != null)
{
DisplayDeferredStartedEvents(parentProjectStartedEvent.ProjectBuildEventContext);
}
var projectFile = projectStartedEvent.ProjectFile ?? string.Empty;
var parentProjectFile = parentProjectStartedEvent?.ProjectFile;
var targetNames = projectStartedEvent.TargetNames;
var nodeId = projectStartedEvent.ProjectBuildEventContext.NodeId;
var shortProjectFile = _pathService.GetFileName(projectFile);
if (parentProjectFile == null)
{
string message;
string shortName;
if (string.IsNullOrEmpty(targetNames))
{
message = _stringService.FormatResourceString("ProjectStartedTopLevelProjectWithDefaultTargets", projectFile, nodeId);
shortName = $"Project \"{shortProjectFile}\"";
}
else
{
message = _stringService.FormatResourceString("ProjectStartedTopLevelProjectWithTargetNames", projectFile, nodeId, targetNames);
shortName = $"Project \"{shortProjectFile}\": {targetNames}";
}
_hierarchicalMessageWriter.StartBlock(shortName);
_messageWriter.WriteLinePrefix(projectStartedEvent.FullProjectKey, projectStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(message, true);
_logWriter.ResetColor();
}
else
{
if (string.IsNullOrEmpty(targetNames))
{
var shortName = $"Project \"{shortProjectFile}\"";
_hierarchicalMessageWriter.StartBlock(shortName);
_messageWriter.WriteLinePrefix(parentProjectStartedEvent.FullProjectKey, parentProjectStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("ProjectStartedWithDefaultTargetsMultiProc", parentProjectFile, parentProjectStartedEvent.FullProjectKey, projectFile, projectStartedEvent.FullProjectKey, nodeId), true);
}
else
{
var shortName = $"Project \"{shortProjectFile}\": {targetNames}";
_hierarchicalMessageWriter.StartBlock(shortName);
_messageWriter.WriteLinePrefix(parentProjectStartedEvent.FullProjectKey, parentProjectStartedEvent.TimeStamp, false);
_logWriter.SetColor(Color.BuildStage);
_messageWriter.WriteMessageAligned(_stringService.FormatResourceString("ProjectStartedWithTargetsMultiProc", parentProjectFile, parentProjectStartedEvent.FullProjectKey, projectFile, projectStartedEvent.FullProjectKey, nodeId, targetNames), true);
}
_logWriter.ResetColor();
}
ShownBuildEventContext(null);
}