Допустим, у меня есть три цели A, B и C. С зависит от Б. B зависит от A. Если я запускаю msbuild /t:C mybuildfile.xml, он выполнит цели A, B и C по порядку. Как настроить, чтобы C и B не выполнялись, если в A произошел сбой?
msbuild /t:C mybuildfile.xml
<Target Name="StopBuild"> <Message Text="An error has occurred, build stopped." /> </Target> <Target Name="A"> <OnError ExecuteTargets="StopBuild"/> </Target> <Target Name="B" DependsOnTargets="A"> </Target>
Хорошо, я понял это сам. Используйте приведенный выше код, если цель A завершится неудачно, она перейдет к StopBuild, указанному в задаче OnError. Подробнее о том, как msbuild обрабатывает ошибки, читайте в http://en.csharp -online.net / MSBuild: _By_Example% E2% 80% 94Dealing_with_MSBuild_Errors