方法 : タスクで発生したエラーを無視するHow to: Ignore Errors in Tasks

ビルド時に一部のタスクのエラーを許容するとよい場合があります。Sometimes you want a build to be tolerant of faults in certain tasks. そのような重要でないタスクが失敗しても必要な出力は生成できるため、ビルドを続行させる場合です。If those non-critical tasks fail, you want the build to continue because it can still produce the required output. たとえば、各コンポーネントのビルド後にプロジェクトで SendMail タスクを使ってメール メッセージを送信する場合、メール サーバーが利用できず、ステータス メッセージを送信できなくても、完了までビルドを続行させるのは許容範囲と見なせる場合があります。For example, if a project uses a SendMail task to send an e-mail message after each component is built, you might consider it acceptable for the build to proceed to completion even when the mail servers are unavailable and the status messages cannot be sent. 別の例として、通常、ビルド中に中間ファイルが削除される場合、それらのファイルを削除できなくても、完了までビルドを続行させるのは許容範囲と見なせる場合があります。Or, for example, if intermediate files are usually deleted during the build, you might consider it acceptable for the build to proceed to completion even when those files cannot be deleted.

ContinueOnError 属性の使用Using the ContinueOnError Attribute

Task 要素の ContinueOnError 属性は、タスク エラーの発生時にビルドを停止するか続行するかを制御します。The ContinueOnError attribute of the Task element controls whether a build stops or continues when a task failure occurs. この属性は、ビルドを続行するときに、エラーをエラーとして扱うか、それとも警告として扱うかも制御します。This attribute also controls whether errors are treated as errors or warnings when the build continues.

ContinueOnError 属性には、次の値のいずれかを含めることができます。The ContinueOnError attribute can contain one of the following values:

  • WarnAndContinue または trueWarnAndContinue or true. タスクが失敗すると、Target 要素の後続のタスクとビルドの実行が継続し、タスクのすべてのエラーが警告として扱われます。When a task fails, subsequent tasks in the Target element and the build continue to execute, and all errors from the task are treated as warnings.

  • ErrorAndContinueErrorAndContinue. タスクが失敗すると、Target 要素の後続のタスクとビルドの実行が継続し、タスクのすべてのエラーがエラーとして扱われます。When a task fails, subsequent tasks in the Target element and the build continue to execute, and all errors from the task are treated as errors.

  • ErrorAndStop または false (既定値)。ErrorAndStop or false (default). タスクが失敗すると、Target 要素の残りのタスクとビルドは実行されず、Target 要素全体とビルドは失敗したと見なされます。When a task fails, the remaining tasks in the Target element and the build aren't executed, and the entire Target element and the build is considered to have failed.

    バージョン 4.5 より前の .NET Framework では、true 値と false 値のみがサポートされます。Versions of the .NET Framework before 4.5 supported only the true and false values.

    ContinueOnError の既定値は ErrorAndStop です。The default value of ContinueOnError is ErrorAndStop. 属性を ErrorAndStop に設定すると、プロジェクト ファイルを読むユーザーにとって動作は明確になります。If you set the attribute to ErrorAndStop, you make the behavior explicit to anyone who reads the project file.

タスクのエラーを無視するにはTo ignore an error in a task

  • タスクの ContinueOnError 属性を使用します。Use the ContinueOnError attribute of the task. 例:For example:

    <Delete Files="@(Files)" ContinueOnError="WarnAndContinue"/>

Example

次のコード例は、Delete タスクが失敗した場合でも Build ターゲットが実行され続け、ビルドが成功したと見なされることを示します。The following code example illustrates that the Build target still runs and the build is considered a success, even if the Delete task fails.

<Project DefaultTargets="FakeBuild"  
    xmlns="http://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>  

関連項目See Also

MSBuildMSBuild
Task Reference (タスク リファレンス) Task Reference
タスクTasks