有没有一种方法可以在所有其他目标运行后运行特定的目标,无论它们成功还是失败?
与之相关的MsBuild中的try...finally只涉及少量目标。我需要处理整个包含数十个子构建的程序包的内容。
与之相关的MsBuild中的try...finally只涉及少量目标。我需要处理整个包含数十个子构建的程序包的内容。
<OnError .../>
任务来运行最终的目标?<Target Name="CompleteBuild">
<CallTarget Targets="Target1"/>
<CallTarget Targets="Target2"/>
<CallTarget Targets="FinalTarget"/>
<OnError ExecuteTargets="FinalTarget"/>
</Target>
这个问题没有直接的解决方法。通常在MSBuild中很难知道目标的实际顺序,只能知道相对顺序。你想用这个目标做什么?
CoreBuild
目标,并添加一个额外的OnError
属性来指定如果构建失败,则应运行AfterBuild
目标。这样,AfterBuild
目标将在每次构建时运行,无论成功还是失败。有关覆盖CoreBuild
目标的信息,请参见https://dev59.com/f2435IYBdhLWcg3w6EqF#5169881。 - Dave