2010-07-21 12 views
5

Diciamo che ho tre obiettivi A, B e C. C dipende B. B dipende da A. Se corro msbuild /t:C mybuildfile.xml, si eseguirà bersaglio A, B e C in ordine. Come faccio ad impostare per assicurarmi che C e B non vengano eseguiti se c'è qualcosa che non funziona in A?fermare il processo msbuild se un bersaglio fallisce

risposta

6
<Target Name="StopBuild"> 
    <Message Text="An error has occurred, build stopped." /> 
</Target> 

<Target Name="A"> 
    <OnError ExecuteTargets="StopBuild"/> 
</Target> 

<Target Name="B" DependsOnTargets="A"> 

</Target> 

Ok, l'ho capito da solo. Usa il codice sopra, se la destinazione A fallisce, andrà a StopBuild specificato nell'attività OnError. Per ulteriori informazioni su come msbuild gestisce gli errori, vai a http://en.csharp-online.net/MSBuild:_By_Example%E2%80%94Dealing_with_MSBuild_Errors

Problemi correlati