2010-04-17 56 views

回答

1

这样做没有直接的方法。通常在MSBuild中,很难知道目标的实际顺序,只有相对顺序。你想用这个目标做什么?

+1

下面是我正在做的:修改AssemblyVersion,完成所有构建,并作为最后一步将AssemblyVersion恢复到原来的状态。似乎没有这样做的好方法。 – 2011-01-22 19:11:27

+0

romkyns:我正在做同样的事情。实现它的方法是在自己的csproj文件中重写CoreBuild目标,并使用附加的OnError属性来指定如果构建失败时应该运行AfterBuild目标。这样,无论成功或失败,“AfterBuild”目标都将在每个构建中运行。有关覆盖'CoreBuild'目标的信息,请参阅http://stackoverflow.com/a/5169881/278185。 – Dave 2012-05-18 15:53:27

2

也许如果你包裹使用一个或多个CallTargets在顶层目标的事情,那么你可以使用一个<OnError .../>任务运行最终目标?

<Target Name="CompleteBuild"> 
    <CallTarget Targets="Target1"/> 
    <CallTarget Targets="Target2"/> 
    <CallTarget Targets="FinalTarget"/> 

    <OnError ExecuteTargets="FinalTarget"/> 
</Target>