Condividi tramite


Elemento Target (MSBuild)

Contiene un set di attività per MSBuild da eseguire in sequenza.

<Destinazione progetto><>

Sintassi

<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

Le sezioni seguenti descrivono attributi, elementi figlio ed elementi padre.

Attributes

Attribute Description
Name Attributo obbligatorio.

Nome della destinazione. Un nome di destinazione può contenere qualsiasi carattere ad eccezione $@()%*?.di .
Condition Attributo facoltativo.

Condizione da valutare. Se la condizione restituisce false, la destinazione non eseguirà il corpo della destinazione o le destinazioni impostate nell'attributo DependsOnTargets . Per altre informazioni sulle condizioni, vedere Condizioni.
Inputs Attributo facoltativo.

File che formano input in questa destinazione. Più file sono separati da punti e virgola. I timestamp dei file verranno confrontati con i timestamp dei file in Outputs per determinare se è Target aggiornato. Per altre informazioni, vedere Compilazioni incrementali, Procedura: Compilare in modo incrementale e Trasformazioni.
Outputs Attributo facoltativo.

File che formano output in questa destinazione. Più file sono separati da punti e virgola. I timestamp dei file verranno confrontati con i timestamp dei file in Inputs per determinare se è Target aggiornato. Per altre informazioni, vedere Compilazioni incrementali, Procedura: Compilare in modo incrementale e Trasformazioni.
Returns Attributo facoltativo.

Set di elementi che verranno resi disponibili per le attività che richiamano questa destinazione, ad esempio attività MSBuild. Più destinazioni sono separate da punti e virgola. Se le destinazioni nel file non Returns hanno attributi, gli attributi output vengono invece usati per questo scopo.
KeepDuplicateOutputs Attributo booleano facoltativo.

Se true, vengono registrati più riferimenti allo stesso elemento nei valori Restituiti della destinazione. Per impostazione predefinita, questo attributo è false.
BeforeTargets Attributo facoltativo.

Elenco delimitato da punto e virgola dei nomi di destinazione. Se specificato, indica che questa destinazione deve essere eseguita prima della destinazione o delle destinazioni specificate. In questo modo, l'autore del progetto estende un set esistente di destinazioni senza modificarle direttamente. Per altre informazioni, vedere Ordine di compilazione di destinazione.
AfterTargets Attributo facoltativo.

Elenco delimitato da punto e virgola dei nomi di destinazione. Se specificato, indica che questa destinazione deve essere eseguita dopo la destinazione o le destinazioni specificate. In questo modo, l'autore del progetto estende un set esistente di destinazioni senza modificarle direttamente. Per altre informazioni, vedere Ordine di compilazione di destinazione.
DependsOnTargets Attributo facoltativo.

Le destinazioni che devono essere eseguite prima che questa destinazione possa essere eseguita o che possa verificarsi un'analisi delle dipendenze di primo livello. Più destinazioni sono separate da punti e virgola.
Label Attributo facoltativo.

Identificatore in grado di identificare o ordinare elementi di sistema e utente.

Elementi figlio

Elemento Description
Compito Crea ed esegue un'istanza di un'attività MSBuild. Potrebbero essere presenti zero o più attività in una destinazione.
PropertyGroup Contiene un set di elementi definiti dall'utente Property . Un Target elemento può contenere PropertyGroup elementi.
ItemGroup Contiene un set di elementi definiti dall'utente Item . Un Target elemento può contenere ItemGroup elementi. Per altre informazioni, vedere Elementi.
OnError Fa sì che una o più destinazioni vengano eseguite se l'attributo è ErrorAndStop (o false) per un'attività ContinueOnError non riuscita. In una destinazione possono essere presenti zero o più OnError elementi. Se OnError sono presenti elementi, devono essere gli ultimi elementi dell'elemento Target .

Per informazioni sull'attributoContinueOnError, vedere Elemento Task (MSBuild).

Elementi padre

Elemento Description
Progetto Elemento radice obbligatorio di un file di progetto MSBuild.

Osservazioni:

La prima destinazione da eseguire viene specificata in fase di esecuzione. Le destinazioni possono avere dipendenze da altre destinazioni. Ad esempio, una destinazione per la distribuzione dipende da una destinazione per la compilazione. Il motore MSBuild esegue le dipendenze nell'ordine in cui vengono visualizzate nell'attributo DependsOnTargets , da sinistra a destra. Per altre informazioni, vedere Destinazioni.

MSBuild è dipendente dall'ordine di importazione e l'ultima definizione di una destinazione con un attributo specifico Name è la definizione usata.

Una destinazione viene eseguita una sola volta durante una compilazione, anche se più di una destinazione ha una dipendenza da essa.

Se una destinazione viene ignorata perché Condition l'attributo restituisce false, può comunque essere eseguito se viene richiamato più avanti nella compilazione e il relativo Condition attributo restituisce true in quel momento.

Prima di MSBuild 4, Target restituisce tutti gli elementi specificati nell'attributo Outputs . A tale scopo, MSBuild doveva registrare questi elementi nel caso in cui le attività vengano richieste più avanti nella compilazione. Poiché non c'era modo di indicare quali destinazioni avevano output che i chiamanti richiedevano, MSBuild accumulava tutti gli elementi da tutti su tutti Outputs gli oggetti richiamati Target. Ciò comporta problemi di ridimensionamento per le compilazioni con un numero elevato di elementi di output.

Se l'utente specifica un oggetto Returns su qualsiasi Target elemento di un progetto, solo quelli Targetche dispongono di un Returns attributo registrano tali elementi.

Un Target oggetto può contenere sia un Outputs attributo che un Returns attributo. Outputs viene usato con Inputs per determinare se la destinazione è up-to-date. Returns, se presente, esegue l'override del valore di Outputs per determinare quali elementi vengono restituiti ai chiamanti. Se Returns non è presente, Outputs i chiamanti verranno resi disponibili ai chiamanti tranne nel caso descritto in precedenza.

Prima di MSBuild 4, ogni volta che un oggetto Target includeva più riferimenti allo stesso elemento nel relativo Outputs, tali elementi duplicati verrebbero registrati. In compilazioni molto grandi che avevano un numero elevato di output e molte interdipendenze di progetto, ciò causerebbe uno spreco di memoria elevata perché gli elementi duplicati non erano di alcun utilizzo. Quando l'attributo KeepDuplicateOutputs è impostato su true, questi duplicati vengono registrati.

Example

Nell'esempio di codice seguente viene illustrato un Target elemento 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