2010-04-17 52 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>