UsingTask 元素 (MSBuild)
将 Task 元素中引用的任务映射到包含该任务的实现的程序集。
<UsingTask TaskName="TaskName"
AssemblyName = "AssemblyName"
TaskFactory = "ClassName"
Condition="'String A'=='String B'" />
特性和元素
以下几节描述了特性、子元素和父元素。
特性
特性 |
说明 |
---|---|
AssemblyName |
需要 AssemblyName 特性或 AssemblyFile 特性。 要加载的程序集的名称。 尽管强命名不是必需的,但 AssemblyName 特性会接受强名称程序集。 使用此特性等效于使用 .NET Framework 中的 Load 方法加载程序集。 如果使用了 AssemblyFile 特性,便不能使用此特性。 |
AssemblyFile |
AssemblyName 或 AssemblyFile 特性是必需的。 程序集的文件路径。 此特性接受完整路径,或接受相对路径。 相对路径相对于声明 UsingTask 元素的项目文件或目标文件的目录而言。 使用此特性等效于使用 .NET Framework 中的 LoadFrom 方法加载程序集。 如果使用了 AssemblyName 特性,便不能使用此特性。 |
TaskFactory |
可选特性。 在负责生成指定 Task 名称的实例的程序集中指定该类。用户还可以将 TaskBody 指定为任务工厂接收并用于生成任务的子元素。 TaskBody 的内容是特定于任务工厂的。 |
TaskName |
必需的特性。 要从程序集中引用的任务的名称。 如果可能存在多义性,则此特性应该始终指定完整的命名空间。 如果存在多义性,MSBuild 将选择任意匹配方式,该匹配方式可能产生意外的结果。 |
Condition |
可选特性。 要计算的条件。 有关更多信息,请参见 MSBuild 条件。 |
子元素
元素 |
说明 |
---|---|
参数集,显示在指定 TaskFactory 生成的任务中。 |
|
传递给 TaskFactory 的数据生成任务实例。 |
父元素
元素 |
说明 |
---|---|
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" />