Buscar..


Observaciones

De MSDN: Orden de construcción objetivo

Determinar el orden de construcción objetivo

MSBuild determina el orden de construcción objetivo de la siguiente manera:

  1. Se ejecutan los objetivos de InitialTargets.
  2. Se ejecutan los objetivos especificados en la línea de comandos por el modificador / target. Si no especifica ningún destino en la línea de comandos, se ejecutan los destinos de DefaultTargets. Si ninguno está presente, entonces se ejecuta el primer objetivo encontrado.
  3. Se evalúa el atributo Condición del objetivo. Si el atributo Condición está presente y se evalúa como falso, el objetivo no se ejecuta y no tiene ningún efecto adicional en la compilación.
  4. Antes de que se ejecute un objetivo, se ejecutan sus objetivos DependsOnTargets.
  5. Antes de que se ejecute un destino, se ejecuta cualquier destino que lo enumere en un atributo BeforeTargets.
  6. Antes de que se ejecute un objetivo, se comparan su atributo de entradas y su atributo de salidas. Si MSBuild determina que los archivos de salida están desactualizados con respecto al archivo o archivos de entrada correspondientes, MSBuild ejecuta el destino. De lo contrario, MSBuild salta el objetivo.
  7. Después de ejecutar o omitir un objetivo, se ejecuta cualquier objetivo que lo incluya en un atributo AfterTargets.

DependsOnTargets

Defina una secuencia de objetivos ( Target1 , luego Target2 ) que debe ejecutarse antes de Target3 . Tenga en cuenta que se requiere una solicitud de ejecución para Target3 para que se Target3 Target1 y Target2 .

<Target Name="Target3" DependsOnTargets="Target1;Target2">
</Target>

<Target Name="Target2">
</Target> 

<Target Name="Target1">
</Target> 

AfterTargets

Defina un destino ( Target1 ) para el cual una solicitud de ejecución hará que Target2 se ejecute después.

<Target Name="Target2" AfterTargets="Target1">
</Target> 

<Target Name="Target1">
</Target> 

Antes de los Objetivos

Defina un objetivo ( Target2 ) para el cual una solicitud de ejecución hará que Target1 se ejecute de antemano.

<Target Name="Target2">
</Target> 

<Target Name="Target1" BeforeTargets="Target2">
</Target> 


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow