Attività di MSBuild

Aggiornamento: novembre 2007

Una piattaforma di compilazione deve essere in grado di eseguire qualsiasi numero di azioni durante il processo di compilazione. Per eseguire tali azioni, MSBuild utilizza le attività. Un'attività è un'unità di codice eseguibile utilizzata da MSBuild per eseguire operazioni di compilazione atomiche.

Logica dell'attività

Il file di progetto XML di MSBuild non è in grado di eseguire completamente le operazioni di compilazione, pertanto è necessario implementare una logica dell'attività all'esterno del file di progetto.

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

La classe di attività definisce inoltre i parametri di input e output disponibili per l'attività nel file di progetto. Nel file di progetto è possibile accedere a tutte le proprietà pubbliche impostabili non astratte e non statiche, esposte dalla classe di attività, inserendo un attributo corrispondente con lo stesso nome nell'elemento Task.

Per scrivere un'attività personalizzata, è sufficiente creare una classe gestita che implementi l'interfaccia ITask. Per ulteriori informazioni, vedere Procedura: scrivere un'attività.

Esecuzione di un'attività da un file di progetto

Prima di eseguire un'attività in un file di progetto, occorre dapprima associare il tipo nell'assembly che implementa l'attività al nome dell'attività con l'elemento UsingTask. Ciò permette a MSBuild di conoscere il percorso in cui cercare la logica di esecuzione dell'attività quando questa viene rilevata nel file di progetto.

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

È possibile utilizzare come parametri gli insiemi di elementi di MSBuild. Ad esempio, il codice riportato di seguito richiama l'attività MakeDir e imposta il valore della proprietà Directories dell'oggetto MakeDir come uguale al valore della proprietà BuildDir dichiarata nell'esempio precedente.

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

Le attività possono restituire ai file di progetto anche informazioni, le quali verranno memorizzate in elementi o proprietà per un utilizzo successivo. Il codice riportato di seguito, ad esempio, richiama l'attività Copy e memorizza le informazioni reperite dalla proprietà di output CopiedFiles nell'insieme di elementi SuccessfullyCopiedFiles.

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

Attività incluse

MSBuild viene fornito con numerose attività, ad esempio Copy per eseguire la copia dei file, MakeDir per creare le directory e Csc, per compilare i file di codice sorgente Visual C#. Per un elenco completo delle attività disponibili e per informazioni sul relativo utilizzo, vedere Riferimenti delle attività MSBuild.

Vedere anche

Attività

Procedura: scrivere un'attività

Concetti

Cenni preliminari su MSBuild

Altre risorse

Concetti relativi a MSBuild