Поделиться через


Элемент 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>

См. также