CallTarget 任务
调用项目文件中的指定目标。
任务参数
下表描述了 CallTarget
任务的参数。
参数 | 说明 |
---|---|
RunEachTargetSeparately |
可选的 Boolean 输入参数。如果为 true ,则对每个目标调用一次 MSBuild 引擎。 如果为 false ,则调用一次 MSBuild 引擎即可生成所有目标。 默认值为 false 。 |
TargetOutputs |
可选的 ITaskItem[] 输出参数。包括所有生成目标的输出。 |
Targets |
可选 String[] 参数。指定要生成的一个或多个目标。 |
UseResultsCache |
可选 Boolean 参数。如果为 true ,则返回缓存的结果(如存在)。注意:运行 MSBuild 任务时,其输出会以生成项列表的形式缓存在作用域 (ProjectFileName, GlobalProperties)[TargetNames] 中。 |
注解
如果 Targets
中指定的目标失败,RunEachTargetSeparately
为 true
,则该任务会继续生成剩余目标。
如果要生成默认目标,请使用 MSBuild 任务,并将 Projects
参数设置为等于 $(MSBuildProjectFile)
。
使用 CallTarget
时,MSBuild 在新作用域中评估调用目标,而不是从其调用的相同作用域中评估。 这意味着调用目标中的任何项和属性更改对调用目标均不可见。 若要将信息传递给调用目标,请使用 TargetOutputs
的 output 参数。
除上面列出的参数外,此任务还从 TaskExtension 类继承参数,后者自身继承自 Task 类。 有关这些其他参数的列表及其说明的信息,请参阅 TaskExtension 基类。
示例
以下示例从内部 CallOtherTargets
调用 TargetA
。
<Project DefaultTargets="CallOtherTargets"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Target Name="CallOtherTargets">
<CallTarget Targets="TargetA"/>
</Target>
<Target Name="TargetA">
<Message Text="Building TargetA..." />
</Target>
</Project>