Condividi tramite


Elemento Target (MSBuild)

Contiene un insieme di attività da eseguire in sequenza in MSBuild.

<Target Name="Target Name"
        DependsOnTargets="DependentTarget"
        Inputs="Inputs"
        Outputs="Outputs"
        Returns="Returns"
        KeepDuplicateOutputs="true/false"
        BeforeTargets="Targets"
        AfterTargets="Targets"
        Condition="'String A' == 'String B'">
    <Task>... </Task>
    <OnError... />
</Target>

Attributi ed elementi

Nelle sezioni seguenti vengono illustrati attributi, elementi figlio e padre.

Attributi

Attribute

Oggetto di descrizione

Name

Attributo obbligatorio.

Nome della destinazione.

DependsOnTargets

Attributo facoltativo.

Le destinazioni che devono essere eseguite prima di questa destinazione possono essere eseguite oppure si può verificare l'analisi delle dipendenze di livello principale. Se sono specificate più destinazioni, queste sono separate da punti e virgola.

Returns

Attributo facoltativo.

Set di elementi che saranno resi disponibili per le attività tramite cui viene richiamata questa destinazione, ad esempio, le attività MSBuild. Se sono specificate più destinazioni, queste sono separate da punti e virgola.

Inputs

Attributo facoltativo.

Input di elementi per questa destinazione. Gli elementi all'interno dell'attributo vengono utilizzati come input nell'analisi delle dipendenze di livello principale.

Outputs

Attributo facoltativo.

Output previsti per questa destinazione. È possibile applicare trasformazioni agli elementi di input per generare elementi di output. Per ulteriori informazioni sulle trasformazioni, vedere Trasformazioni di MSBuild.

BeforeTargets

Attributo facoltativo.

Elenco separato da punti e virgola di nomi di destinazione. Se specificato, indica che questa destinazione deve essere eseguita prima delle destinazioni specificate. In tal modo l'autore del progetto può estendere un set esistente di destinazioni senza modificarle direttamente.

AfterTargets

Attributo facoltativo.

Elenco di nomi di destinazioni separati da punto e virgola. Se specificato, indica che questa destinazione deve essere eseguita dopo le destinazioni specificate. In tal modo l'autore del progetto può estendere un set esistente di destinazioni senza modificarle direttamente.

KeepDuplicateOutputs

Attributo booleano facoltativo.

Se true, vengono registrati più riferimenti allo stesso elemento nell'attributo Outputs. Per impostazione predefinita, questo attributo è false.

Condition

Attributo facoltativo.

Condizione da valutare. Se tramite la condizione viene restituito false, il corpo della destinazione o di eventuali destinazioni impostate nell'attributo DependsOnTargets non verrà eseguito. Per ulteriori informazioni sulle condizioni, vedere Condizioni di MSBuild.

Elementi figlio

Elemento

Oggetto di descrizione

Task

Crea ed esegue un'istanza di un'attività MSBuild. In una destinazione possono essere presenti zero o più attività.

OnError

Determina l'esecuzione di una o più destinazioni se l'attributo ContinueOnError è impostato su false per un'attività non riuscita. In una destinazione possono essere presenti zero o più elementi OnError. Gli elementi OnError eventualmente presenti devono comparire per ultimi all'interno dell'elemento Target.

Elementi padre

Elemento

Oggetto di descrizione

Project

Elemento radice obbligatorio di un file di progetto MSBuild.

Note

La prima destinazione da eseguire viene specificata in fase di esecuzione. Le destinazioni possono contenere dipendenze da altre destinazioni. Ad esempio, una destinazione per la distribuzione dipende da una destinazione per la compilazione. MSBuild consente di eseguire le dipendenze nell'ordine in cu sono visualizzate nell'attributo DependsOnTargets, da sinistra a destra. Per ulteriori informazioni, vedere Destinazioni di MSBuild.

Anche se più destinazioni contengono una dipendenza da una specifica destinazione, questa viene eseguita una sola volta durante una compilazione.

Se una destinazione viene ignorata perché tramite il relativo attributo Condition viene restituito false, può essere comunque eseguita richiamandola in una fase successiva della compilazione. A questo punto, tramite il relativo attributo Condition viene restituito true.

Prima di MSBuild 4, tramite Target veniva restituito qualsiasi elemento specificato nell'attributo Outputs. A tal fine, è stato necessario registrare questi elementi in MSBuild nel caso in cui venissero richiesti dalle attività successivamente nella compilazione. Poiché non esisteva un modo per indicare quali destinazioni disponevano di output richiesti dai chiamanti, tutti gli elementi di tutti gli Outputs in tutte le Target richiamate sono stati accumulati in MSBuild. In tal modo, i problemi per le compilazioni con un gran numero di elementi di output vengono ridimensionati.

Se l'utente specifica un attributo Returns per ogni elemento Target di un progetto, vengono registrati solo gli elementi Target che dispongono di un attributo Returns.

Un elemento Target potrebbe contenere un attributo Outputs e un attributo Returns. L'attributo Outputs viene utilizzato insieme all'attributo Inputs per determinare se la destinazione è aggiornata. Tramite l'attributo Returns, se presente, viene eseguito l'override del valore dell'attributo Outputs per determinare quali elementi vengono restituiti ai chiamanti. Se Returns non è presente, Outputs sarà reso disponibile ai chiamanti tranne nel caso descritto in precedenza.

Prima di MSBuild 4, ogni volta che in una Target erano inclusi più riferimenti allo stesso elemento nei relativi Outputs, tali elementi duplicati venivano registrati. In compilazioni di grandi dimensioni con un numero elevato di output e numerose interdipendenze del progetto, questa situazione comporterebbe lo spreco di una notevole quantità di memoria dal momento che gli elementi duplicati non verrebbero utilizzati in alcun modo. Se l'attributo KeepDuplicateOutputs è impostato su true, questi duplicati non vengono memorizzati.

Esempio

Nell'esempio di codice riportato di seguito viene illustrato un elemento Target che esegue l'attività Csc.

<Target Name="Compile" DependsOnTargets="Resources" Returns="$(TargetPath)">
    <Csc Sources="@(CSFile)"
          TargetType="library"
          Resources="@(CompiledResources)"
          EmitDebugInformation="$(includeDebugInformation)"
          References="@(Reference)"
          DebugType="$(debuggingType)" >
        <Output TaskParameter="OutputAssembly"
                  ItemName="FinalAssemblyName" />
    </Csc>
</Target>

Vedere anche

Concetti

Destinazioni di MSBuild

Riferimenti dello schema del file di progetto MSBuild