【问题标题】:Stop msbuild process if a target fails如果目标失败,则停止 msbuild 进程
【发布时间】:2010-07-21 07:46:55
【问题描述】:

假设我有三个目标 A、B 和 C。 C 依赖于 B。 B依赖于A。 如果我运行msbuild /t:C mybuildfile.xml,它将依次执行目标A、B和C。 如果 A 中有任何失败,我该如何设置以确保 C 和 B 不会被执行?

【问题讨论】:

    标签: msbuild


    【解决方案1】:
    <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

    【讨论】:

    • 很遗憾,该链接现在似乎已断开。