2010-04-17 13 views

Respuesta

1

No hay una forma directa de hacerlo. Por lo general, en MSBuild es difícil conocer el orden real de los objetivos, solo el orden relativo. ¿Qué estás tratando de hacer con este objetivo?

+1

Esto es lo que estoy tratando de hacer: modificar AssemblyVersion, hacer todo el edificio, y como paso final revertir AssemblyVersion a lo que era. No parece haber una buena forma de hacer esto. –

+0

romkyns: estoy haciendo exactamente lo mismo. La forma de hacerlo es anular el objetivo 'CoreBuild' en su propio archivo csproj, con un atributo' OnError' adicional para especificar que el objetivo 'AfterBuild' debe ejecutarse si falla la compilación. De esta forma, el objetivo 'AfterBuild' se ejecutará en todas las compilaciones, independientemente del éxito o fracaso. Consulte http://stackoverflow.com/a/5169881/278185 para obtener información sobre anular el objetivo 'CoreBuild'. – Dave

2

Tal vez si envuelve cosas en un objetivo de nivel superior utilizando una o más CallTargets, entonces podría usar una tarea <OnError .../> para ejecutar un objetivo final?

<Target Name="CompleteBuild"> 
    <CallTarget Targets="Target1"/> 
    <CallTarget Targets="Target2"/> 
    <CallTarget Targets="FinalTarget"/> 

    <OnError ExecuteTargets="FinalTarget"/> 
</Target> 
Cuestiones relacionadas