Элемент OnError (MSBuild)
Вызывает выполнение одного или нескольких целевых объектов, если атрибут ContinueOnError
для задачи, завершившейся ошибкой, имеет значение false
.
<Project><Target><OnError>
Синтаксис
<OnError ExecuteTargets="TargetName"
Condition="'String A'=='String B'" />
Элементы и атрибуты
В следующих разделах описаны атрибуты, дочерние и родительские элементы.
Атрибуты
Атрибут | Description |
---|---|
Condition |
Необязательный атрибут элемента . Проверяемое условие. Дополнительные сведения см. в разделе Условия. |
ExecuteTargets |
Обязательный атрибут элемента . Целевые объекты, которые следует выполнить при сбое задачи. Если целевых объектов несколько, разделите их точкой с запятой. Если целевых объектов несколько, они выполняются в указанном порядке. |
Дочерние элементы
Нет.
Родительские элементы
Элемент | Description |
---|---|
Целевой объект | Элемент контейнера для задач MSBuild. |
Замечания
MSBuild выполняет элемент OnError
, если любая из задач элемента Target
при завершении имеет атрибут ContinueOnError
со значением ErrorAndStop
(или false
). Если задача завершается с ошибкой, выполняются целевые объекты, заданные в атрибуте ExecuteTargets
. Если целевой объект содержит несколько элементов OnError
, в случае сбоя задачи все элементы OnError
выполняются последовательно.
Дополнительные сведения об атрибуте ContinueOnError
см. в статье Элемент Task (MSBuild). Дополнительные сведения о целевых объектах см. в статье Целевые объекты.
Пример
Следующий пример кода выполняет задачи TaskOne
и TaskTwo
. Если TaskOne
завершается ошибкой, MSBuild оценивает элемент OnError
и выполняет целевой объект OtherTarget
.
<Target Name="ThisTarget">
<TaskOne ContinueOnError="ErrorAndStop">
</TaskOne>
<TaskTwo>
</TaskTwo>
<OnError ExecuteTargets="OtherTarget" />
</Target>