在MSBuild中,您可以添加一个BeforeTargets属性,该属性允许您在基础目标之前运行目标,而无需更改基本目标。我想知道ANT是否支持这种功能,或者当我想在另一个目标之前执行目标时,我是否不得不重新定义所有目标?
谢谢, 劳尔
答案 0 :(得分:2)
您可以使用(N)Ant中的depends
属性:
<target name="target3" depends="target1,target2">
我想,与MsBuild中的DependsonTargets
相同。我强烈反对你使用前/后目标。如果我在看到构建文件之后运行目标,并且看到在它之前/之后运行了一些额外的目标,尽管我没有看到关于其他目标的任何内容,我会非常困惑,有时候,这会造成伤害。
答案 1 :(得分:0)
在MSBuild 4.0中,目标有BeforeTargets和AfterTargets属性。这些指定了在另一个目标之前/之后运行的目标列表。
这实际上非常适合指定在您无法控制的另一个目标文件中定义的目标之后发生的事情(例如Microsoft.Common.targets)。
示例:
<Import Project="Microsoft.Common.targets" />
<Target Name="GetSourceFiles" BeforeTargets="Build">
<Message Text="GetSourceFiles now executing" />
... execute your source control operations ...
</Target>
<Target Name="CopyOutputsForPublishing" AfterTargets="Build">
<Message Text="CopyOutputsForPublishing now executing" />
... execute your copying operations ...
</Target>
我发现这些非常有帮助。