UsingTask 元素 (MSBuild)

Task 元素中引用的任务映射到包含该任务的实现的程序集。

<UsingTask TaskName="TaskName"
    AssemblyName = "AssemblyName" 
    TaskFactory = "ClassName"
    Condition="'String A'=='String B'" />

特性和元素

以下几节描述了特性、子元素和父元素。

特性

特性

说明

AssemblyName

需要 AssemblyName 特性或 AssemblyFile 特性。

要加载的程序集的名称。 尽管强命名不是必需的,但 AssemblyName 特性会接受强名称程序集。 使用此特性等效于使用 .NET Framework 中的 Load 方法加载程序集。

如果使用了 AssemblyFile 特性,便不能使用此特性。

AssemblyFile

AssemblyNameAssemblyFile 特性是必需的。

程序集的文件路径。 此特性接受完整路径,或接受相对路径。 相对路径相对于声明 UsingTask 元素的项目文件或目标文件的目录而言。 使用此特性等效于使用 .NET Framework 中的 LoadFrom 方法加载程序集。

如果使用了 AssemblyName 特性,便不能使用此特性。

TaskFactory

可选特性。

在负责生成指定 Task 名称的实例的程序集中指定该类。用户还可以将 TaskBody 指定为任务工厂接收并用于生成任务的子元素。 TaskBody 的内容是特定于任务工厂的。

TaskName

必需的特性。

要从程序集中引用的任务的名称。 如果可能存在多义性,则此特性应该始终指定完整的命名空间。 如果存在多义性,MSBuild 将选择任意匹配方式,该匹配方式可能产生意外的结果。

Condition

可选特性。

要计算的条件。 有关更多信息,请参见 MSBuild 条件

子元素

元素

说明

ParameterGroup

参数集,显示在指定 TaskFactory 生成的任务中。

TaskBody

传递给 TaskFactory 的数据生成任务实例。

父元素

元素

说明

Project

MSBuild 项目文件必需的根元素。

备注

如果 UsingTask 元素显式地或者通过导入的项目文件出现在项目文件中,就可以在该元素内的任意位置引用环境变量、命令行属性和项目级属性。 有关更多信息,请参见MSBuild 任务

备注

如果 UsingTask 元素来自使用 MSBuild 引擎全局注册的某个 .tasks 文件,则项目级属性没有意义。项目级属性对于 MSBuild 而言不是全局的。

在 MSBuild 4.0,可以从 .overridetask 文件加载使用任务。

示例

下面的示例演示如何将 UsingTask 元素和 AssemblyName 特性结合使用。

<UsingTask TaskName="MyTask" AssemblyName="My.Assembly" TaskFactory="MyTaskFactory">
       <ParameterGroup>
              <Parameter1 ParameterType="System.String" Required="False" Output="False"/>
              <Parameter2 ParameterType="System.Int" Required="True" Output="False"/>
              ...
</ParameterGroup>
       <TaskBody>
      ... Task factory-specific data ...
       </TaskBody>
</UsingTask>

下面的示例演示如何将 UsingTask 元素和 AssemblyFile 特性结合使用。

<UsingTask TaskName="Email"
              AssemblyFile="c:\myTasks\myTask.dll" />

请参见

概念

MSBuild 任务

MSBuild 项目文件架构引用

其他资源

MSBuild 任务参考