Я использую два файла TARGET. В одном файле TARGET я вызываю TARGET, который находится во втором файле TARGET. Затем этот второй TARGET вызывает другой TARGET, который имеет 6 других вызовов TARGET, которые выполняют множество разных действий (помимо вызова других вложенных TARGETS (но внутри одного и того же файла TARGET)). Проблема в том, что в TARGET, где я называю 6 TARGETS, выполняется только первый. Программа не находит своего способа назвать 2-й, 3-й, 4-й, 5-й и 6-й ЦЕЛИ. Существует ли ограничение на количество вложенных TARGETS, которые могут быть вызваны и запущены? Ничто не терпит неудачу. Проблема заключается в том, что другие вызовы TARGET не выполняются. Спасибо за любую помощь, которую вы можете предоставить.
Все целевые объекты не вызываются (вложенные целевые объекты не выполняются)
Ответ 1
Нет ограничений на количество вложенных целей. Вы пытались запустить msbuild со всем журналом, чтобы узнать, почему цели не вызываются:
msbuild [project.file] /verbosity:detailed
Я думаю, что это связано с невыполненным условием (атрибут Condition
на целевом объекте), неизменным вводом (Input
атрибут на цель) или вы пытаетесь вызвать одни и те же конечные кратные моменты.
Вызов одной и той же цели несколько раз
-
С помощью задачи
MSBuild
:<!-- The target we want to execute multiple times --> <Target Name="VeryUsefulOne"> <Message Text="Call VeryUsefulOne Target"/> </Target> <Target Name="One"> <Message Text="One"/> <MSBuild Targets="VeryUsefulOne" Properties="stage=one" Projects="$(MSBuildProjectFile)"/> </Target> <Target Name="Two"> <Message Text="Two"/> <MSBuild Targets="VeryUsefulOne" Properties="stage=two" Projects="$(MSBuildProjectFile)"/> </Target> <Target Name="OneTwo"> <CallTarget Targets="One;Two"/> </Target>
Важно изменить значение Properties
между вызовами.