假设我有三个目标A,B和C.
C取决于B.
B取决于A.
如果我运行msbuild /t:C mybuildfile.xml
,它将按顺序执行目标A,B和C.
如果A中有任何失败,我如何设置以确保C和B不会被执行?
答案 0 :(得分:6)
<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失败,它将转到OnError任务中指定的StopBuild。有关msbuild如何处理错误的更多信息,请转到 http://en.csharp-online.net/MSBuild:_By_Example%E2%80%94Dealing_with_MSBuild_Errors