Поделиться через


Элемент UsingTask (MSBuild)

Сопоставляет задачу, на которую ссылается элемент Task , с сборкой, содержащей реализацию задачи.

<Project><UsingTask>

Синтаксис

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

Замечание

В отличие от свойств и элементов, первыйUsingTask элемент, применяемый к объекту TaskName , используется; для переопределения задач необходимо определить новый UsingTaskперед существующим элементом или указать Override="true" в новом UsingTask.

Атрибуты и элементы

В следующих разделах описаны атрибуты, дочерние и родительские элементы.

Attributes

Свойство Description
Architecture Необязательный атрибут.

Указывает, что задача должна выполняться в процессе указанной битности. Если текущий процесс не соответствует требованию, задача выполняется в процессе узла задач, который выполняется.

Поддерживаются x86 значения (32-разрядная), x64 (64-разрядная), CurrentArchitectureа также * (любая архитектура).
AssemblyName Обязательный AssemblyName атрибут или AssemblyFile атрибут.

Имя загружаемой сборки. Атрибут AssemblyName принимает сборки с строгим именем, хотя строгое именование не требуется. Использование этого атрибута эквивалентно загрузке сборки с помощью Load метода в .NET.

Этот атрибут нельзя использовать, если AssemblyFile используется атрибут.
AssemblyFile AssemblyName Требуется либо AssemblyFile атрибут.

Путь к файлу сборки. Этот атрибут принимает полные пути или относительные пути. Относительные пути относительно каталога файла проекта или целевого файла, в котором UsingTask объявлен элемент. Использование этого атрибута эквивалентно загрузке сборки с помощью LoadFrom метода в .NET.

Этот атрибут нельзя использовать, если AssemblyName используется атрибут.
Override Необязательный атрибут.

Указывает, что этот UsingTask элемент должен быть выше приоритета, чем другие элементы, определяющие то же имя задачи. Для каждого имени задачи разрешено только одно переопределение. Добавлено в MSBuild 17.2.
Runtime Необязательный атрибут.

Указывает среду выполнения задачи, в котором должна выполняться задача. Если текущий процесс MSBuild не соответствует требованию, задача выполняется в процессе узла задач, который выполняется.

Поддерживаемые значения: CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 или более поздней версии), CurrentRuntimeNET (.NET) и * (любая среда выполнения). Runtime="NET"поддерживается начиная с MSBuild 18.0 (пакет SDK для .NET 10/Visual Studio 2026) и в настоящее время поддерживается только для проектов.Microsoft.NET.Sdk dotnet build (версия .NET MSBuild) не может выполнять CLR2/CLR4 задачи.
TaskFactory Необязательный атрибут.

Указывает класс в сборке, ответственной за создание экземпляров указанного Task имени. Пользователь также может указать Task дочерний элемент, который фабрика задач получает и использует для создания задачи. Содержимое Task объекта зависит от фабрики задач. Значение по умолчанию TaskFactory — это AssemblyTaskFactoryзагрузка задачи в выполняющийся процесс.
TaskName Обязательный атрибут.

Имя задачи для ссылки из сборки. Если неоднозначность возможна, этот атрибут всегда должен указывать полные пространства имен. Если есть неоднозначность, MSBuild выбирает произвольное совпадение, которое может привести к непредвиденным результатам.
Condition Необязательный атрибут.

Условие для вычисления. Дополнительные сведения см. в разделе Условия.

Дочерние элементы

Элемент Description
ParameterGroup Набор параметров, отображаемых в задаче, созданной указанным TaskFactory.
задачи Данные, передаваемые TaskFactory в создание экземпляра задачи.

Родительские элементы

Элемент Description
Проект Обязательный корневой элемент файла проекта MSBuild.

Замечания

Переменные среды, свойства командной строки, свойства уровня проекта и элементы уровня проекта можно ссылаться на элементы, включенные в UsingTask файл проекта напрямую или через импортированный файл проекта. Дополнительные сведения см. в разделе Задачи.

Замечание

Свойства и элементы уровня проекта не имеют значения, если UsingTask элемент поступает из одного из файлов .tasks , которые глобально зарегистрированы в подсистеме MSBuild. Значения уровня проекта не являются глобальными для MSBuild.

В MSBuild 4.0 можно загружать задачи из .overridetask файлов.

Сборка, содержащая настраиваемую задачу, загружается при Task первом использовании.

Пример 1

В следующем примере показано, как использовать UsingTask элемент с атрибутом AssemblyFile .

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

Так как нет или Runtime нетTaskHost, задача выполняется в процессе MSBuild в среде выполнения и архитектуре, которая выполняется для данной сборки.

Пример 2

В следующем примере показано, как использовать UsingTask элемент с атрибутом AssemblyName и пользовательским TaskFactory , определенным в этой сборке.

<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>
       <Task>
      ... Task factory-specific data ...
       </Task>
</UsingTask>

См. также