Jak: Ignorovat chyby v úkolech
Někdy chcete sestavení se chybám závad některé úkoly.Nekritické úkoly nezdaří, chcete pokračovat, protože je stále produkovat požadovaného výstupního sestavení.Projekt používá-li například SendMail úkolu odeslat e-mailovou zprávu po každé komponenty je sestavena, zvažte jeho přijatelné pro sestavení pokračovat po dokončení, i když poštovní servery nejsou k dispozici a nelze odeslat zprávy o stavu.Nebo například pokud mezilehlé soubory jsou obvykle odstraněny během sestavení, můžete zvážit je přijatelné pro sestavení pokračovat po dokončení, i když tyto soubory nelze odstranit.
Pomocí atributu atribut ContinueOnError
ContinueOnError Atribut Task element řídí, zda sestavení zastaví nebo pokračuje, dojde k selhání úlohy.Tento atribut také řídí, zda chyby jsou zpracovány jako chyby nebo varování při sestavení pokračuje.
ContinueOnError Atributu může obsahovat jednu z následujících hodnot:
WarnAndContinue nebo true.Při úlohy nezdaří, následné úlohy v cíl element a sestavení nadále spouštět a všechny chyby z úkolu jsou považovány za upozornění.
ErrorAndContinue.Když úkol selže, následné úkoly v Target element a sestavení nadále spouštět a všechny chyby z úkolu jsou považovány za chyby.
ErrorAndStop nebo false (výchozí).Když úkol selže, zbývající úkoly v Target element a sestavení nebudou provedeny a celou Target element a sestavení je považován za se nezdařilo.
Verze rozhraní.NET Framework před 4.5 podporována pouze true a false hodnoty.
Výchozí hodnota ContinueOnError je ErrorAndStop.Pokud nastavíte atribut ErrorAndStop, aby chování explicitní komukoliv souboru projektu.
Ignorovat chyby v úkolu
Použití ContinueOnError atribut úkol.Příklad:
<Delete Files="@(Files)" ContinueOnError="WarnAndContinue"/>
Příklad
Následující příklad kódu ukazuje, že Build cíl se spustí a sestavení je považován za úspěch, i když Delete úlohy nezdaří.
<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>