C++ MSBuild BeforeBuild步骤
我昨天询问了有关如何使C++ MSBuild BeforeBuild步骤,c++,visual-c++,msbuild,msbuild-task,pre-build-event,C++,Visual C++,Msbuild,Msbuild Task,Pre Build Event,我昨天询问了有关如何使后构建工作的问题,并将其放置在项目部分的最底部,从而使其工作: 我在另一个项目中尝试了完全相同的方法。这是我的BeforeBuild代码: <Target Name="BeforeBuild"> <Message Text="###HI###" Importance="High" /> </Target> 我在项目中没有另一个beforeTarget Name=“BeforeBuild”,我把它放在项目部分的最底部。.vcx
后构建
工作的问题,并将其放置在项目
部分的最底部,从而使其工作:
我在另一个项目中尝试了完全相同的方法。这是我的BeforeBuild
代码:
<Target Name="BeforeBuild">
<Message Text="###HI###" Importance="High" />
</Target>
我在项目中没有另一个beforeTarget Name=“BeforeBuild”
,我把它放在项目
部分的最底部。.vcxproj正在解析/加载到VisualStudio2010中,没有问题。我已将“MSBuild项目生成输出/日志详细性”设置为“正常”
是否有其他我没有想到的东西会导致此操作无法运行?除非显式调用,否则不会调用目标,它是一个默认目标,根据调用的目标进行声明,或者在调用之前或之后声明它自己的目标,并调用其中一个目标 因此,如果希望在名为“InitializeBuildStatus”的目标之前调用目标,可以这样编写:
<Target Name="MyBeforeBuild" BeforeTargets="InitializeBuildStatus">
<Message Text="###HI###" Importance="High" />
</Target>
如果“InitializeBuildStatus”目标运行,它将运行。(您可以在Visual Studio或MSBuild运行中启用详细日志记录,以帮助确定适当的BeforeTarget目标。)
“预构建前”和“后构建”目标由Microsoft某些项目类型的目标系统显式调用。这只提供有限的扩展性。较新的(.NET 4.0)方法是BeforeTargets和AfterTargets
参阅
HMM,C++构建没有预先生成的目标。我没有看到一个好的应用,我看到的唯一合适的候选对象是“PreBuildEvent”目标。但请注意,执行此操作时会禁用设置中定义的预生成事件。只要目标声明处于架构允许的级别,它们的位置不会改变任何东西。@HansPassant我不知道您是否了解原因,但是VisualC和BeforeTargets=“Build”
它总是在“buildsuccessed”之前运行。编译之后,其他一切都发生了。如果您将您的BeforeTargets=“Build”
更改为BeforeTargets=“InitializeBuildStatus”
我将接受。