Элемент 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>