这两个项目设置都允许我执行自定义命令。它们各有优缺点吗?
这两个项目设置都允许我执行自定义命令。它们各有优缺点吗?
区别很大。自定义构建步骤允许您指定依赖关系和输出,从而使构建系统能够确定何时执行该步骤,并在输出已经是最新的情况下跳过它。后构建事件始终在需要构建项目时执行,其时间是固定的。
echo HELLO WORLD
到我的后构建事件中进行测试。(1)如预期一样,HELLO WORLD
被显示出来。(2)如果我只是右键单击项目再次构建... HELLO WORLD
不会在Visual Studio输出, 显示生成窗口的输出中显示。(3)执行清理然后构建... HELLO WORLD
再次出现。因此,在Visual Studio 2012(使用项目配置中设置为v90的平台工具集)中,后构建事件仅在实际构建时才会执行。我有什么遗漏吗? - Pressacco似乎@Hans的回答有些混淆,主要区别在于如果不需要构建文件,则不会发生任何构建事件。
根据MSDN文档:
构建事件和自定义构建步骤将与其他构建步骤一起按以下顺序运行:
Pre-Build event
Custom build tools on individual files
MIDL
Resource compiler
The C/C++ compiler
Pre-Link event
Linker or Librarian (as appropriate)
Manifest Tool
BSCMake
Custom build step on the project
Post-Build event