未调用所有目标(嵌套目标未被执行)

oba*_*sta 4 msbuild

我正在使用两个TARGET文件.在一个TARGET文件中,我调用第二个TARGET文件中的TARGET.然后第二个TARGET调用另一个TARGET,它有另外6个TARGET调用,它们执行许多不同的操作(除了调用其他嵌套的TARGETS(但在同一个TARGET文件中)).问题在于,在我称之为6 TARGETS的TARGET上,只有第一个正在执行.该计划没有找到调用第2,第3,第4,第5和第6目标的方法.可以调用和运行的嵌套TARGET的数量是否有限制?没有什么是失败的.问题是其他TARGET调用没有运行.感谢您的任何帮助,您可以提供.

Jul*_*rau 5

嵌套的目标数量没有限制.您是否尝试使用所有日志运行msbuild以查看未调用目标的原因:

msbuild [project.file] /verbosity:detailed 
Run Code Online (Sandbox Code Playgroud)

我认为这是由于未满足的条件(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>
    
    Run Code Online (Sandbox Code Playgroud)

Properties在呼叫之间改变价值很重要.