我正在使用两个目标文件。在一个目标文件上,我调用第二个目标文件内的目标。然后,第二个 TARGET 调用另一个 TARGET,该 TARGET 有 6 个其他 TARGET 调用,这些调用执行许多不同的操作(除了调用其他嵌套 TARGET(但在同一 TARGET 文件内))。问题是,在我调用 6 个 TARGETS 的 TARGET 上,只有第一个正在执行。该程序找不到调用第二个、第三个、第四个、第五个和第六个目标的方法。可以调用和运行的嵌套目标数量是否有限制?没有什么是失败的。问题是其他 TARGET 调用没有运行。感谢您提供的任何帮助。
最佳答案
嵌套目标的数量没有限制。您是否尝试过使用所有日志运行 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
值非常重要。
关于msbuild - 所有目标未被调用(嵌套目标未被执行),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2798762/