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
.
Помимо перечисленных выше параметров, эта задача наследует параметры от класса TaskExtension, который, в свою очередь, наследует от класса Task. Список этих дополнительных параметров и их описания см. в статье Базовый класс TaskExtension.
Пример
Приведенный ниже пример вызывается TargetA
из CallOtherTargets
.
<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>