2010-04-17 22 views

risposta

1

Non esiste un modo semplice per farlo. Solitamente in MSBuild è difficile conoscere l'ordine effettivo degli obiettivi, solo l'ordine relativo. Cosa stai cercando di fare con questo obiettivo?

+1

Ecco cosa sto cercando di fare: modificare AssemblyVersion, fare tutto l'edificio, e come passo finale ripristinare AssemblyVersion per quello che era. Non sembra essere un bel modo per farlo. –

+0

romkyns: sto facendo la stessa identica cosa. Il modo per farlo è sovrascrivere la destinazione 'CoreBuild' nel proprio file csproj, con un attributo aggiuntivo' OnError' per specificare che la destinazione 'AfterBuild' dovrebbe essere eseguita se la compilazione fallisce. In questo modo, il target 'AfterBuild' verrà eseguito su ogni build, indipendentemente dal successo o dall'errore. Consulta http://stackoverflow.com/a/5169881/278185 per informazioni sull'override del target 'CoreBuild'. – Dave

2

Forse se hai avvolto le cose in un obiettivo di livello superiore utilizzando uno o più CallTarget, allora potresti usare un'attività <OnError .../> per eseguire un obiettivo finale?

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

    <OnError ExecuteTargets="FinalTarget"/> 
</Target> 
Problemi correlati