msbuild target для всех ссылок проекта - PullRequest
0 голосов
/ 05 сентября 2018

У меня есть требование вызывать цели для каждой из «ProjectReferences» для следующей иерархической структуры проекта.

проект A -> проект B -> проект C

У каждого проекта есть цель под названием «customTarget». Как определить конфигурацию так, чтобы при вызове «customTarget» для проекта «A» он вызывал «customTarget» в проекте «B» и косвенно вызывал цель «C»? Ожидаемый целевой заказ: C -> B -> A.

Вопрос: Как настроить вышеизложенное, а также сделать его общим для всех ссылок на проект.

[UPDATE]
Мне удалось создать цепочку целевых звонков, используя

<MSBUILD Projects="@(ProjectReference)" Targets="customTarget" />

Но для этого требуется, чтобы я добавил целевую спецификацию в каждый проект в цепочке проектов, даже если он ничего не делает.
Будет ли какое-то лучшее решение, если оно приблизится к вышесказанному?

1 Ответ

0 голосов
/ 05 сентября 2018

Вы можете поместить цель расширения в файл Directory.Build.props:

<Project>
  <Target Name="customTarget" DependsOnTargets="PrepareProjectReferences">
    <MSBUILD Projects="@(ProjectReferenceWithConfiguration)" 
             Targets="customTarget"
             SkipNonexistentTargets="true" />
  </Target>
</Project>

В VS 2017 / MSBuild 15 и выше он будет автоматически импортирован во все файлы проектов ниже иерархии папок.

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