Elemento UsingTask (MSBuild)

Associa l'attività a cui si fa riferimento in un elemento Task all'assembly che contiene l'implementazione dell'attività.

<Project><UsingTask>

Sintassi

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

Nota

A differenza delle proprietà e degli elementi, verrà usato il primoUsingTask elemento che si applica a un TaskName oggetto . Per eseguire l'override delle attività è necessario definire un nuovoUsingTask elemento prima di quello esistente oppure specificare Override="true" nel nuovo UsingTaskoggetto .

Attributi ed elementi

Nelle sezioni seguenti vengono descritti gli attributi, gli elementi figlio e gli elementi padre.

Attributi

Attributo Descrizione
Architecture Attributo facoltativo.

Specifica che l'attività deve essere eseguita in un processo del bitness specificato. Se il processo corrente non soddisfa il requisito, l'attività verrà eseguita in un processo host di attività che esegue questa operazione.

I valori supportati sono x86 (32 bit), x64 (64 bit), CurrentArchitecturee * (qualsiasi architettura).
AssemblyName Sono obbligatori sia l'attributo AssemblyName che l'attributo AssemblyFile.

Nome dell'assembly da caricare. L'attributo AssemblyName accetta assembly con nome sicuro, anche se non è obbligatorio un nome sicuro. L'uso di questo attributo equivale a caricare un assembly usando il metodo Load in .NET.

Non è possibile usare questo attributo se viene usato l'attributo AssemblyFile.
AssemblyFile È obbligatorio l'attributo AssemblyName o l'attributo AssemblyFile.

Percorso del file dell'assembly. Questo attributo accetta percorsi completi o percorsi relativi. I percorsi relativi sono relativi alla directory del file di progetto o file di destinazioni in cui viene dichiarato l'elemento UsingTask. L'uso di questo attributo equivale a caricare un assembly usando il metodo LoadFrom in .NET.

Non è possibile usare questo attributo se viene usato l'attributo AssemblyName.
Override Attributo facoltativo.

Specifica che questo UsingTask elemento deve avere una priorità più alta rispetto ad altri elementi che definiscono lo stesso nome dell'attività. È consentito un solo override per ogni nome di attività. Aggiunta in MSBuild 17.2.
Runtime Attributo facoltativo.

Specifica che l'attività deve essere eseguita in un runtime .NET Framework della versione specificata. Se il processo corrente non soddisfa il requisito, l'attività verrà eseguita in un processo host di attività che esegue questa operazione.

I valori supportati sono "NET" (.NET Core e .NET 5 o versione successiva), CLR2 (.NET Framework 3.5), CLR4 (.NET Framework 4.7.2 o versione successiva), CurrentRuntimee * (qualsiasi runtime). Si noti che non è possibile chiamare attività NET quando si esegue .NET Framework (CLR4) MSBuild e non è possibile chiamare attività CLR2/CLR4 da .NET MSBuild (quando si esegue dotnet build).
TaskFactory Attributo facoltativo.

Specifica la classe nell'assembly responsabile della generazione di istanze del nome Task specificato. L'utente può specificare anche un elemento figlio Task che la factory delle attività riceve e usa per generare l'attività. I contenuti dell'elemento Task sono specifici per la factory delle attività. Il valore predefinito TaskFactory è AssemblyTaskFactory, che carica l'attività nel processo in esecuzione.
TaskName Attributo obbligatorio.

Il nome dell'attività a cui fare riferimento da un assembly. In caso di ambiguità, questo attributo deve specificare sempre gli spazi dei nomi completi. In caso di ambiguità, MSBuild sceglie una corrispondenza arbitraria, con potenziali risultati imprevisti.
Condition Attributo facoltativo.

La condizione da valutare. Per altre informazioni, vedere Condizioni.

Elementi figlio

Elemento Descrizione
ParameterGroup Il set di parametri visualizzati nell'attività generata dall'elemento TaskFactory specificato.
Attività I dati che vengono passati all'elemento TaskFactory per generare un'istanza dell'attività.

Elementi padre

Elemento Descrizione
Progetto Elemento radice obbligatorio di un file di progetto MSBuild.

Osservazioni:

È possibile fare riferimento alle variabili di ambiente, alle proprietà della riga di comando, alle proprietà a livello di progetto e agli elementi a livello di progetto negli elementi UsingTask inclusi nel file di progetto sia direttamente che tramite un file di progetto importato. Per altre informazioni, vedere Tasks (Attività).

Nota

Le proprietà e gli elementi a livello di progetto non hanno alcun effetto se l'elemento UsingTask proviene da uno dei file con estensione tasks registrati a livello globale nel motore MSBuild. I valori a livello di progetto non sono globali per MSBuild.

In MSBuild 4.0 è possibile caricare gli elementi UsingTask dai file con estensione overridetask.

L'assembly contenente l'attività personalizzata viene caricato quando viene usato per la Task prima volta.

Esempio 1

L'esempio seguente illustra come usare l'elemento UsingTask con un attributo AssemblyFile.

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

Poiché non Runtime è presente o TaskHost specificato, l'attività verrà eseguita nel processo MSBuild, nel runtime e nell'architettura in esecuzione per una determinata compilazione.

Esempio 2

Nell'esempio seguente viene illustrato come usare l'elemento UsingTask con un AssemblyName attributo e un oggetto personalizzato TaskFactory definito in tale assembly.

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

Vedi anche