MSBuild (attività)

Una piattaforma di compilazione deve poter eseguire un numero illimitato di azioni durante il processo di compilazione. MSBuild usa le attività per eseguire queste azioni. Un'attività è un'unità di codice eseguibile usato MSBuild per eseguire operazioni di compilazione atomiche.

Logica delle attività

Il MSBuild file di progetto XML non può eseguire completamente le operazioni di compilazione, pertanto la logica dell'attività deve essere implementata all'esterno del file di progetto.

La logica di esecuzione di un'attività viene implementata come classe .NET che implementa l'interfaccia ITask, definita nello spazio dei nomi Microsoft.Build.Framework.

La classe dell'attività definisce anche i parametri di input e di output disponibili per l'attività nel file di progetto. A tutte le proprietà non astratte non statiche impostabili pubbliche esposte dalla classe di attività è possibile assegnare valori nel file di progetto inserendo un attributo corrispondente con lo stesso nome nell'elemento Task e impostandone il valore come illustrato negli esempi più avanti in questo articolo.

Per scrivere un'attività personalizzata, è sufficiente creare una classe gestita che implementi l'interfaccia ITask. Per altre informazioni, vedere Scrittura di attività.

Esecuzione di un'attività da un file di progetto

Prima di eseguire un'attività nel file di progetto, è necessario eseguire il mapping del tipo nell'assembly che implementa l'attività al nome dell'attività con l'elemento UsingTask. Ciò consente MSBuild sapere dove cercare la logica di esecuzione dell'attività quando la trova nel file di progetto.

Per eseguire un'attività in MSBuild file di progetto, creare un elemento con il nome dell'attività come figlio di un Target elemento . Se un'attività accetta i parametri, questi vengono passati come attributi dell'elemento.

MSBuild gli elenchi di elementi e le proprietà possono essere usati come parametri. Ad esempio, il codice seguente chiama l'attività e imposta il valore della proprietà MakeDir Directories dell'oggetto MakeDir uguale al valore della proprietà BuildDir :

<Target Name="MakeBuildDirectory">
    <MakeDir
        Directories="$(BuildDir)" />
</Target>

Le attività possono anche restituire informazioni al file di progetto, che è possibile archiviare in elementi o proprietà per un uso futuro. Il codice seguente, ad esempio, chiama l'attività Copy e archivia le informazioni dalla proprietà di output CopiedFiles nell'elenco di elementi SuccessfullyCopiedFiles.

<Target Name="CopyFiles">
    <Copy
        SourceFiles="@(MySourceFiles)"
        DestinationFolder="@(MyDestFolder)">
        <Output
            TaskParameter="CopiedFiles"
            ItemName="SuccessfullyCopiedFiles"/>
     </Copy>
</Target>

Attività incluse

MSBuild viene fornito con molte attività, ad esempio Copia, che copia i file, MakeDir, che crea directory, e Csc, che compila i file di codice sorgente C#. Per un elenco completo delle attività disponibili e delle informazioni sull'utilizzo, vedere Informazioni di riferimento sulle attività.

Attività sottoposte a override

MSBuild cerca le attività in diverse posizioni. Il primo percorso è in file con estensione . OverrideTasks archiviato nelle directory .NET Framework. Le attività in questi file eseguono l'override delle altre attività con gli stessi nomi, incluse le attività nel file di progetto. Il secondo percorso si trova nei file con estensione . Attività nelle .NET Framework directory. Se l'attività non è presente in nessuna di queste posizioni, viene usata l'attività nel file di progetto.

Vedi anche