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 primo UsingTask
elemento che si applica a un TaskName
oggetto . Per eseguire l'override delle attività è necessario definire un nuovo UsingTask
elemento prima di quello esistente oppure specificare Override="true"
nel nuovo UsingTask
oggetto .
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), CurrentArchitecture e * (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), CurrentRuntime e * (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>