我昨天询问了AfterBuild
是否正常工作,并且能够将其放在Project
部分的最底部:MSBuild AfterBuild Step
我用不同的项目尝试了完全相同的事情。这是我的BeforeBuild
代码:
<Target Name="BeforeBuild">
<Message Text="###HI###" Importance="High" />
</Target>
我在项目Target Name="BeforeBuild"
之前没有另一个,我把它放在Project
部分的最底部。 .vcxproj正在解析/加载到Visual Studio 2010中而没有问题。我将“MSBuild project build build / log verbocity”设置为“Normal”。
还有其他一些我没想过会导致这种情况无法运行吗?
答案 0 :(得分:3)
除非显式调用,否则不调用目标,是默认目标,在被调用的目标的DependsOn中声明,或声明其自己的BeforeTargets或AfterTargets,并调用其中一个目标。
因此,如果您希望在名为“InitializeBuildStatus”的目标之前调用目标,则可以这样写:
<Target Name="MyBeforeBuild" BeforeTargets="InitializeBuildStatus">
<Message Text="###HI###" Importance="High" />
</Target>
如果“InitializeBuildStatus”目标运行,它将运行。 (您可以在Visual Studio或MSBuild运行中启用详细日志记录,以帮助确定相应的BeforeTarget目标。)
“BeforeBuild”和“AfterBuild”目标由Microsoft的某些项目类型的目标系统显式调用。这提供了有限的可扩展性。较新的(.NET 4.0)方式是BeforeTargets和AfterTargets。