OnError 要素 (MSBuild)OnError Element (MSBuild)

失敗したタスクの ContinueOnError 属性が false の場合、1 つ以上のターゲットが実行されます。Causes one or more targets to execute, if the ContinueOnError attribute is false for a failed task.



<OnError ExecuteTargets="TargetName"  
    Condition="'String A'=='String B'" />  

属性および要素Attributes and Elements

以降のセクションでは、属性、子要素、および親要素について説明します。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.

子要素Child Elements


親要素Parent Elements

要素Element 説明Description
TargetTarget MSBuildMSBuild タスクのコンテナー要素。Container element for MSBuildMSBuild tasks.


Target 要素のタスクの 1 つが失敗し、ContinueOnError 属性が ErrorAndStop (または false) に設定されている場合、MSBuildMSBuildOnError 要素を実行します。MSBuildMSBuild executes the OnError element if one of the Target element's tasks fails with the ContinueOnError attribute set to ErrorAndStop (or false). タスクが失敗すると、ExecuteTargets 属性で指定されているターゲットが実行されます。When the task fails, the targets specified in the ExecuteTargets attribute is executed. ターゲットに複数の OnError 要素がある場合、タスクが失敗すると OnError 要素は順番に実行されます。If there is more than one OnError element in the target, the OnError elements are executed sequentially when the task fails.

ContinueOnError 属性の詳細は、「Task Element (MSBuild) (Task 要素 (MSBuild))」を参照してください。For information about the ContinueOnError attribute, see Task Element (MSBuild). ターゲットについては、「MSBuild ターゲット」をご覧ください。For information about targets, see Targets.


次のコードは、TaskOne タスクと TaskTwo タスクを実行します。The following code executes the TaskOne and TaskTwo tasks. TaskOne が失敗した場合、MSBuildMSBuildOnError 要素を評価し、OtherTarget ターゲットを実行します。If TaskOne fails, MSBuildMSBuild evaluates the OnError element and executes the OtherTarget target.

<Target Name="ThisTarget">  
    <TaskOne ContinueOnError="ErrorAndStop">  
    <OnError ExecuteTargets="OtherTarget" />  

参照See Also

プロジェクト ファイル スキーマ リファレンス Project File Schema Reference