Все цели не вызываются (вложенные цели не выполняются)

Я использую два файла TARGET. В одном файле TARGET я называю TARGET, который находится во втором файле TARGET. Затем этот второй TARGET вызывает другой TARGET, который имеет 6 других вызовов TARGET, которые выполняют множество различных действий (в дополнение к вызову других вложенных TARGETS (но внутри того же файла TARGET)). Проблема в том, что на ЦЕЛЕ, где я называю 6 ЦЕЛЕЙ, выполняется только первая. Программа не находит способ вызвать 2-й, 3-й, 4-й, 5-й и 6-й TARGET. Есть ли ограничение на количество вложенных ЦЕЛЕВ, которые можно вызывать и запускать? Ничего не подведет. Проблема в том, что другие вызовы 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 значение между вызовом.

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