Condividi tramite


Elemento Target (MSBuild)

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

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

Attributi ed elementi

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

Attributi

Attributo

Descrizione

Name

Attributo obbligatorio.

Il nome della destinazione.

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.

Inputs

Attributo facoltativo.

I file che costituiscono gli input in questa destinazione.Più file sono separati da punti e virgola.I timestamp dei file verranno confrontato con i timestamp dei file in Outputs per determinare se Target viene aggiornato.Per ulteriori informazioni, vedere Compilazioni incrementali, Procedura: eseguire la compilazione incrementale e Trasformazioni di MSBuild.

Outputs

Attributo facoltativo.

I file che costituiscono gli output in questa destinazione.Più file sono separati da punti e virgola.I timestamp dei file verranno confrontato con i timestamp dei file in Inputs per determinare se Target viene aggiornato.Per ulteriori informazioni, vedere Compilazioni incrementali, Procedura: eseguire la compilazione incrementale e Trasformazioni di MSBuild.

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.Se i database di destinazione nel file non dispongono di attributi di Returns, gli attributi di output vengono invece utilizzati per questo scopo.

KeepDuplicateOutputs

Attributo booleano facoltativo.

Se true, riferimenti allo stesso elemento restituirà di destinazione è registrato.Per impostazione predefinita, questo attributo è false.

BeforeTargets

Attributo facoltativo.

Elenco di nomi di destinazioni separati da punto e virgola. Una volta specificato, indica che tale destinazione deve eseguire prima che il database di destinazione o le destinazioni specificate.In questo modo l'autore di progetto estendere un set esistente di destinazione senza modificare direttamente.Per ulteriori informazioni, vedere Ordine di compilazione delle destinazioni.

AfterTargets

Attributo facoltativo.

Elenco di nomi di destinazioni separati da punto e virgola.Una volta specificato, indica che tale destinazione deve essere eseguita dopo la destinazione o le destinazioni specificate.In questo modo l'autore di progetto estendere un set esistente di destinazione senza modificare direttamente.Per ulteriori informazioni, vedere Ordine di compilazione delle destinazioni.

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.

Label

Attributo facoltativo.

Un identificatore che può identificare o ordinare gli elementi di sistema e utente.

Elementi figlio

Elemento

Descrizione

Task

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

PropertyGroup

Contiene un insieme di elementi definiti dall'utente di Property.A partire da.NET Framework 3.5, un elemento di Target può contenere elementi di PropertyGroup.

ItemGroup

Contiene un insieme di elementi definiti dall'utente di Item.A partire da.NET Framework 3.5, un elemento di Target può contenere elementi di ItemGroup.Per ulteriori informazioni, vedere Elementi MSBuild.

OnError

Determina una o più destinazioni a eseguire se l'attributo di ContinueOnError è ErrorAndStop (o 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.

Per informazioni sull'attributo di ContinueOnError, vedere Elemento Task (MSBuild).

Elementi padre

Elemento

Descrizione

Progetto

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.Quando l'attributo di KeepDuplicateOutputs è impostato su trueduplicati, questi vengono registrati.

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