Cómo: Pasar errores por alto en las tareas

Actualización: noviembre 2007

En ocasiones es preferible que una generación tolere los errores producidos en determinadas tareas. Si los errores se producen en tareas no críticas, conviene que la generación continúe porque es posible obtener el resultado esperado. Por ejemplo, si un proyecto utiliza una tarea SendMail para enviar un mensaje de correo electrónico tras la generación de cada componente, tal vez se considere aceptable que la generación continúe hasta finalizar aunque los servidores de correo no estén disponibles para enviar los mensajes de estado. O, por ejemplo, si los archivos intermedios se suelen eliminar durante la generación, es posible que se considere aceptable finalizar la generación incluso si dichos archivos no se pueden eliminar.

Utilizar el atributo ContinueOnError

El atributo ContinueOnError del elemento Task controla si una generación debe detenerse o continuar tras producirse un error en la tarea. Al establecer ContinueOnError en true, se especifica que la generación debe continuar aunque se produzca un error en la tarea.

Nota:

El valor predeterminado de ContinueOnError es false. Si el atributo se establece en false el comportamiento no varía, pero se hace explícito para toda persona que lea el archivo de proyecto.

Para omitir un error en una tarea

  • Utilice el atributo ContinueOnError de la tarea. Por ejemplo:

    <Delete Files="@(Files)" ContinueOnError="true"/>
    

Ejemplo

En el ejemplo de código siguiente se muestra cómo el destino Build está ejecutándose y la generación se considera correcta aunque se produzca un error en la tarea Delete.

<Project DefaultTargets="FakeBuild"
    xmlns="https://schemas.microsoft.com/developer/msbuild/2003">
    <ItemGroup>
        <Files Include="*.obj"/>
    </ItemGroup>
    <Target Name="Clean">
        <Delete Files="@(Files)" ContinueOnError="true"/>
    </Target>

    <Target Name="FakeBuild" DependsOnTargets="Clean">
        <Message Text="Building after cleaning..."/>
    </Target>
</Project>

Vea también

Conceptos

MSBuild

Tareas de MSBuild

Otros recursos

Referencia de tareas de MSBuild