Freigeben über


UsingTask-Element (MSBuild)

Ordnet die Aufgabe, auf die in einem Task-Element verwiesen wird, der Assembly zu, die die Aufgabenimplementierung enthält.

<Project><UsingTask>

Syntax

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

Hinweis

Im Gegensatz zu Eigenschaften und Elementen wird das ersteUsingTask Element, das für eine TaskName Anwendung gilt, verwendet. Zum Überschreiben von Aufgaben müssen Sie eine neue UsingTaskvor dem vorhandenen definieren oder im neuen UsingTaskangebenOverride="true".

Attribute und Elemente

In den folgenden Abschnitten werden Attribute sowie untergeordnete und übergeordnete Elemente beschrieben.

Attribute

Merkmal Description
Architecture Optionales Attribut.

Gibt an, dass die Aufgabe in einem Prozess der angegebenen Bitanzahl ausgeführt werden muss. Wenn der aktuelle Prozess die Anforderung nicht erfüllt, wird die Aufgabe in einem Aufgabenhostprozess ausgeführt, der ausgeführt wird.

Unterstützte Werte sind x86 (32-Bit), x64 (64-Bit), CurrentArchitectureund * (beliebige Architektur).
AssemblyName Entweder das AssemblyName Attribut oder das AssemblyFile Attribut ist erforderlich.

Der Name der zu ladenden Assembly. Das AssemblyName Attribut akzeptiert stark benannte Assemblys, obwohl keine starke Benennung erforderlich ist. Die Verwendung dieses Attributs entspricht dem Laden einer Assembly mithilfe der Load Methode in .NET.

Sie können dieses Attribut nicht verwenden, wenn das AssemblyFile Attribut verwendet wird.
AssemblyFile Entweder das AssemblyName Attribut oder das AssemblyFile Attribut ist erforderlich.

Der Dateipfad der Assembly. Dieses Attribut akzeptiert vollständige Pfade oder relative Pfade. Relative Pfade sind relativ zum Verzeichnis der Projektdatei oder zieldatei, in der das UsingTask Element deklariert wird. Die Verwendung dieses Attributs entspricht dem Laden einer Assembly mithilfe der LoadFrom Methode in .NET.

Sie können dieses Attribut nicht verwenden, wenn das AssemblyName Attribut verwendet wird.
Override Optionales Attribut.

Gibt an, dass dieses UsingTask Element höher als andere Elemente sein soll, die denselben Aufgabennamen definieren. Pro Vorgangsname ist nur eine Außerkraftsetzung zulässig. In MSBuild 17.2 hinzugefügt.
Runtime Optionales Attribut.

Gibt an, dass die Aufgabe in einer .NET Framework-Laufzeit der angegebenen Version ausgeführt werden muss. Wenn der aktuelle Prozess die Anforderung nicht erfüllt, wird die Aufgabe in einem Aufgabenhostprozess ausgeführt, der ausgeführt wird.

Unterstützte Werte sind 'NET' (.NET Core und .NET 5 oder höher), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 oder höher), CurrentRuntime( NET ab .NET 10 oder höher) und * (beliebige Laufzeit). Sie können Laufzeitaufgaben nur aufrufen NET , wenn Sie .NET Framework MSBuild ausführen, wenn Sie MSBuild 18.0 (Visual Studio 2026 oder höher) oder .NET SDK 10 oder höher verwenden, und Sie können keine CLR2/CLR4-Aufgaben aus .NET MSBuild (bei Ausführung dotnet build) aufrufen.
TaskFactory Optionales Attribut.

Gibt die Klasse in der Assembly an, die für das Generieren von Instanzen des angegebenen Task Namens verantwortlich ist. Der Benutzer kann auch ein Task untergeordnetes Element angeben, das die Taskfactory empfängt und verwendet, um die Aufgabe zu generieren. Der Inhalt des Elements Task ist spezifisch für die Vorgangsfactory. Der Standardwert TaskFactory ist AssemblyTaskFactory, der die Aufgabe in den ausgeführten Prozess lädt.
TaskName Erforderliches Attribut.

Der Name der Aufgabe, auf die von einer Assembly verwiesen werden soll. Wenn Mehrdeutigkeiten möglich sind, sollte dieses Attribut immer vollständige Namespaces angeben. Wenn Mehrdeutigkeiten vorliegen, wählt MSBuild eine beliebige Übereinstimmung aus, was zu unerwarteten Ergebnissen führen kann.
Condition Optionales Attribut.

Die auszuwertende Bedingung. Weitere Informationen finden Sie unter Conditions (MSBuild-Bedingungen).

Untergeordnete Elemente

Element Description
ParameterGroup Der Satz von Parametern, die für den Vorgang angezeigt werden, der durch den angegebenen TaskFactoryWert generiert wird.
Aufgabe Die Daten, die an die TaskFactory Aufgabe übergeben werden, um eine Instanz der Aufgabe zu generieren.

Übergeordnete Elemente

Element Description
Projekt Erforderliches Stammelement einer MSBuild-Projektdatei.

Bemerkungen

Umgebungsvariablen, Befehlszeileneigenschaften, Eigenschaften auf Projektebene und Elemente auf Projektebene können in den Elementen, die UsingTask in der Projektdatei enthalten sind, entweder direkt oder über eine importierte Projektdatei referenziert werden. Weitere Informationen finden Sie unter Aufgaben.

Hinweis

Eigenschaften und Elemente auf Projektebene haben keine Bedeutung, wenn das UsingTask Element aus einer der Aufgabendateien stammt, die global mit dem MSBuild-Modul registriert sind. Werte auf Projektebene sind für MSBuild nicht global.

In MSBuild 4.0 können Aufgaben aus .overridetask Dateien geladen werden.

Die Assembly, die die benutzerdefinierte Aufgabe enthält, wird geladen, wenn sie Task zum ersten Mal verwendet wird.

Beispiel 1

Das folgende Beispiel zeigt, wie das UsingTask Element mit einem AssemblyFile Attribut verwendet wird.

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

Da keine Runtime oder TaskHost keine Angabe vorhanden ist, wird die Aufgabe im MSBuild-Prozess in der Laufzeit und Architektur ausgeführt, die für einen bestimmten Build ausgeführt wird.

Beispiel 2

Das folgende Beispiel zeigt, wie sie das UsingTask Element mit einem AssemblyName Attribut und einer benutzerdefinierten TaskFactory Definition in dieser Assembly verwenden.

<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>

Siehe auch