Como ignorar erros em tarefas
A as vezes você deseja que uma compilação para ser tolerante de falhas em determinadas tarefas. Se essas tarefas não crítica falham, você deseja que a compilação para continuar porque ainda pode produzir saída necessários. Por exemplo, se um projeto usa uma tarefa de SendMail enviar uma mensagem de email após cada componente é compilado, você pode considerá-la aceitável para que a compilação vá para a conclusão mesmo quando os servidores de email não estão disponíveis e mensagens de status não podem ser enviados. Ou, por exemplo, se os arquivos intermediários são excluídos geralmente durante a compilação, você pode considerá-la aceitável para que a compilação vá para a conclusão mesmo quando os arquivos não podem ser excluídas.
usando o atributo de ContinueOnError
O atributo de ContinueOnError do elemento de Task controla se uma compilação para ou continua quando uma falha de tarefa ocorre. Esse atributo também controla se os erros são tratados como erros ou avisos quando a compilação continua.
O atributo de ContinueOnError pode conter um dos seguintes valores:
WarnAndContinue ou true. Quando uma tarefa falhar, as tarefas subseqüentes no elemento de Destino na compilação e continuar a executar, e todos os erros de tarefa são tratados como avisos.
ErrorAndContinue. Quando uma tarefa falhar, as tarefas subseqüentes no elemento de Target na compilação e continuar a executar, e todos os erros de tarefa são tratados como erros.
ErrorAndStop ou false (padrão). Quando uma tarefa falhar, as outras tarefas no elemento de Target e na compilação não são executadas, e o elemento inteiro de Target e a construção são considerados ter falhado.
As versões do .NET Framework 4,5 antes de suportavam apenas os valores de true e de false .
O valor padrão para ContinueOnError é ErrorAndStop. Se você definir o atributo para ErrorAndStop, você faz o comportamento explícito para qualquer pessoa que lê o arquivo de projeto.
para ignorar um erro em uma tarefa
Use o atributo de ContinueOnError de tarefas. Por exemplo:
<Delete Files="@(Files)" ContinueOnError="WarnAndContinue"/>
Exemplo
O exemplo de código a seguir ilustra de Build de destino o executa ainda e a construção são consideradas um êxito, mesmo se a tarefa de Delete falhar.
<Project DefaultTargets="FakeBuild"
xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Files Include="*.obj"/>
</ItemGroup>
<Target Name="Clean">
<Delete Files="@(Files)" ContinueOnError="WarnAndContinue"/>
</Target>
<Target Name="FakeBuild" DependsOnTargets="Clean">
<Message Text="Building after cleaning..."/>
</Target>
</Project>