Учитывая два события журнала msbuild X и Y, где X.Timestamp <Y.Timestamp верно ли, что событие X было запущено до события Y? - PullRequest
0 голосов
/ 14 ноября 2018

Речь идет о параллельной сборке.Два события:

  • MSBuild TaskStarted
  • ProjectStarted

ИЛИ

  • ProjectFinished
  • MSBuild TaskFinished

Итак, если MSBuild TaskStarted.Timestamp <<code>ProjectStarted.Timestamp, то рассматриваемая задача MSBuild запущена раньше, чем проект.

РЕДАКТИРОВАТЬ 1

Я пытаюсь установить отношения родитель-потомок между событиями msbuild.Самое сложное - между MSBuild TaskStarted и ProjectStarted.TaskStarted (т. Е. Задача) может быть родительским для данного ProjectStarted (т. Е. Проекта), но в журнале они часто имеют одинаковую метку времени и принадлежат разным узлам msbuild.Я все еще могу сопоставить их, используя другое предположение ( Правда ли, что ProjectStartedEventArgs.TargetNames` одинаков для всех дочерних проектов, вызванных из одной и той же задачи MSBuild? ).Во всяком случае, у меня есть случаи, когда мой код ломается, потому что кажется, что дочернее событие ProjectStarted имеет меньшую временную метку, чем его родительское событие MSBuild TaskStarted.

1 Ответ

0 голосов
/ 17 ноября 2018

Я думаю, что самый надежный способ установить отношения родитель-ребенок между событиями MSBuild - это использование BuildEventContext.Каждый BuildEventArgs имеет BuildEventContext: https://source.dot.net/#Microsoft.Build.Framework/BuildEventArgs.cs,3ad27845b97a06b4

. В нем вы можете видеть идентификатор узла, к какому проекту относится данное событие, к какой цели (если есть) и к какой задаче (если есть).Если задача MSBuild (запускает сборку другого проекта), то родительская задача проекта будет указывать на эту задачу MSBuild.

Я бы не обязательно полагался на временные метки для установления отношений, возможно, только для временного упорядочения (дляотображать события в правильном логическом порядке).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...