我正在使用两个TARGET文件。在一个TARGET文件中,我调用第二个TARGET文件中的TARGET。然后第二个TARGET调用另一个TARGET,它有6个其他TARGET调用,它们执行许多不同的操作(除了调用其他嵌套的TARGETS(但在同一个TARGET文件中))。问题在于,在我称之为6 TARGETS的TARGET上,只有第一个正在执行。该计划没有找到调用第2,第3,第4,第5和第6目标的方法。可以调用和运行的嵌套TARGET的数量是否有限制?没有什么是失败的。问题是其他TARGET调用没有运行。感谢您提供的任何帮助。
答案 0 :(得分:5)
嵌套的目标数量没有限制。您是否尝试使用所有日志运行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
值非常重要。