in TeamCity.MSBuild.Logger/BuildEventManager.cs [25:56]
public void AddProjectStartedEvent(ProjectStartedEventArgs e, bool requireTimestamp)
{
if (e == null) throw new ArgumentNullException(nameof(e));
var projectStartedEvent = GetProjectStartedEvent(e.ParentProjectBuildEventContext);
int projectIncrementKey;
int entryPointKey;
lock (_projectStartedEvents)
{
if (_projectStartedEvents.ContainsKey(e.BuildEventContext))
{
return;
}
if (!_projectKey.TryGetValue(e.ProjectFile, out projectIncrementKey))
{
_projectIncrementKey += 1;
_projectKey.Add(e.ProjectFile, _projectIncrementKey);
projectIncrementKey = _projectIncrementKey;
}
if (!_projectTargetKey.TryGetValue(e.ProjectFile, out entryPointKey))
{
_projectTargetKey.Add(e.ProjectFile, 1);
}
else
{
_projectTargetKey[e.ProjectFile] = entryPointKey + 1;
}
}
_projectStartedEvents.Add(e.BuildEventContext, new ProjectStartedEventMinimumFields(projectIncrementKey, entryPointKey, e, projectStartedEvent, requireTimestamp));
}