Condividi tramite


Procedura: ignorare gli errori nelle attività

Per alcune attività, potrebbe essere necessario che la compilazione garantisca la tolleranza d'errore. Se in queste attività non critiche si verificano errori, la compilazione deve comunque procedere, poiché è ancora in grado di produrre l'output desiderato. Se ad esempio un progetto utilizza un'attività SendMail per inviare un messaggio di posta elettronica al termine della compilazione di ogni componente, può essere ritenuto accettabile che la generazione proceda fino al completamento anche quando i server di posta risultano non disponibili e il messaggio di stato non può essere inviato. Oppure, anche se i file intermedi vengono generalmente eliminati durante la compilazione, è accettabile che questa proceda fino al completamento anche quando tali file non possono essere eliminati.

Utilizzo dell'attributo ContinueOnError

L'attributo ContinueOnError dell'elemento Task controlla se una compilazione si interrompe o prosegue in seguito al verificarsi di un errore nell'attività. Questo attributo consente inoltre di controllare se gli errori vengano considerati come errori o avvisi quando la compilazione continua.

L'attributo ContinueOnError può contenere uno dei seguenti valori:

  • WarnAndContinue o true. Quando un'attività non riesce, le attività successive nell'elemento Destinazione e nella compilazione continua a eseguire e tutti gli errori dall'attività vengono trattati come avvisi.

  • ErrorAndContinue. Quando un'attività non riesce, le attività successive nell'elemento Target e nella compilazione continua a eseguire e tutti gli errori dall'attività sono considerati come errori.

  • ErrorAndStop o false (impostazione predefinita). Quando un'attività non riesce, le attività rimanenti nell'elemento Target e nella compilazione non vengono eseguite e l'intero elemento Target e la compilazione viene considerato dell'errata esecuzione.

Le versioni di .NET Framework precedente alla 4,5 supportano i valori false e solo true.

Il valore predefinito di ContinueOnError è ErrorAndStop. Se si imposta l'attributo su ErrorAndStop, è produrre un comportamento esplicito a chiunque leggere il file di progetto.

Per ignorare un errore di un'attività

  • Utilizzare l'attributo ContinueOnError dell'attività. Ad esempio:

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

Esempio

Nell'esempio di codice riportato di seguito viene illustrato come la destinazione Build continui a essere eseguita e la compilazione venga considerata corretta anche se nell'attività Delete si verifica un errore.

<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>

Vedere anche

Concetti

Attività di MSBuild

Altre risorse

MSBuild

Riferimenti delle attività MSBuild