API: Как узнать количество проектов, создаваемых из решения?

Я пытаюсь получить информацию о файле решения (.sln), создаваемом из проекта C# с использованием API MSBuild 4.0.

Теперь я могу построить его, создав BuildRequestData, отправив его в DefaultBuildManager и вызвав Execute для возвращаемого BuildSubmission (я делаю это асинхронно, поскольку строю несколько конфигураций одновременно, поэтому я ставлю их в очередь и затем начните каждую подачу).

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

Кажется, я не могу найти способ получить количество целей, которые сработает сборка решения. Я взглянул на исходный код на GitHub, и кажется, что решение на самом деле не обрабатывается, пока сборка не отправлена ​​на узел (в BuildManager.HandleNewRequest), здесь - обход ProjectInstance (который, кажется, содержит список целей) прикреплен к объекту конфигурации в кеше, но я не могу получить к нему доступ.

Вероятно, я пошел по неверному пути, если хочу, но документация, которую я нашел, не была слишком полезной. И я постоянно теряюсь, определяя, что является частью 4.0 и что является частью устаревших версий.

Любая помощь или предложения приветствуются!

0 ответов

Другие вопросы по тегам