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


Элемент UsingTask (MSBuild)

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

<Project><UsingTask>

Синтаксис

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

Примечание.

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

Элементы и атрибуты

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

Атрибуты

Атрибут 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 Необязательный атрибут элемента .

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

Поддерживаемые значения: NET (.NET Core и .NET 5 или более поздней версии), CLR2 (платформа .NET Framework 3.5), (платформа .NET Framework 4.7.2 или более поздней версии), CLR4 CurrentRuntimeа также * (любая среда выполнения). Обратите внимание, что при запуске MSBuild платформа .NET Framework (CLR4) невозможно вызывать задачи CLR2/CLR4 из .NET MSBuild (при запускеdotnet build).
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" />

Так как нет или TaskHost нетRuntime, задача будет выполняться в процессе 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>

См. также