这两个项目设置允许我执行自定义命令。各有什么好处或缺点?

有帮助吗?

解决方案

大的差异。自定义生成步骤允许您指定的依赖性和产出。这允许构建系统以确定执行步骤和跳过它,当输出已经是最新的。甲生成后事件是总是当项目需要构建和其定时被固定执行。

其他提示

似乎@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

在该项目的定义生成步骤和所有其他构建过程之后依次运行后生成事件完成。

<强>生成的事件被执行仅如果构建成功到达在构建过程的那些点。如果在编译时发生错误,就不会发生后生成事件;如果链接阶段之前发生错误,将出现没有预链接,也不是后生成事件。此外,如果没有文件需要被链接,就不会发生前链路事件。预链接事件也没有在不包含一个链接步骤的项目可用。 如果没有文件需要建立,也不会发生生成事件。

从Visual Studio C ++开发环境中,也有以自定义生成过程三种基本方法:

自定义生成步骤 自定义生成步骤是与项目相关的生成规则。自定义生成步骤可以指定一个命令行来执行,任何额外的输入或输出文件,并且要显示的消息。有关详细信息,请参阅如何添加自定义生成步骤的MSBuild项目

自定义生成工具 自定义生成工具,是与一个或多个文件相关联的生成规则。自定义生成步骤可以通过输入文件到一个自定义生成工具,其导致一个或多个输出文件。例如,在MFC应用程序的帮助文件是建立一个自定义生成工具。欲了解更多信息,请参阅如何添加自定义生成工具的MSBuild项目和指定自定义生成工具。 生成事件

生成事件让你自定义项目的构建。有三种内建的事件:预编译,预链接,生成后。一个生成事件,您可以指定在生成过程中的特定时间所发生的动作。例如,你可以使用一个构建事件项目建设完成后,注册regsvr32.exe的文件。有关详细信息,请参阅指定生成事件。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top