OnError element (MSBuild)
Causes one or more targets to execute, if the ContinueOnError
attribute is false
for a failed task.
<Project> <Target> <OnError>
<OnError ExecuteTargets="TargetName"
Condition="'String A'=='String B'" />
The following sections describe attributes, child elements, and parent elements.
Attribute | Description |
---|---|
Condition |
Optional attribute. Condition to be evaluated. For more information, see Conditions. |
ExecuteTargets |
Required attribute. The targets to execute if a task fails. Separate multiple targets with semicolons. Multiple targets are executed in the order specified. |
None.
Element | Description |
---|---|
Target | Container element for MSBuild tasks. |
MSBuild executes the OnError
element if one of the Target
element's tasks fails with the ContinueOnError
attribute set to ErrorAndStop
(or false
). When the task fails, the targets specified in the ExecuteTargets
attribute is executed. If there is more than one OnError
element in the target, the OnError
elements are executed sequentially when the task fails.
For information about the ContinueOnError
attribute, see Task element (MSBuild). For information about targets, see Targets.
The following code executes the TaskOne
and TaskTwo
tasks. If TaskOne
fails, MSBuild evaluates the OnError
element and executes the OtherTarget
target.
<Target Name="ThisTarget">
<TaskOne ContinueOnError="ErrorAndStop">
</TaskOne>
<TaskTwo>
</TaskTwo>
<OnError ExecuteTargets="OtherTarget" />
</Target>