开始大量使用 XE 中的构建事件系统,但我注意到的一件事是我无法在默认项目设置中设置默认构建事件。是否有任何解决方法/黑客/任何可以使这成为可能的方法?我正在查看 bin 目录中的 CodeGear.Group.Targets 和 CodeGear.Delphi.Targets,如果这甚至可行,那是我应该看的地方吗?
谢谢
啊哈。回答了我自己的问题。(某处有删除按钮吗?大声笑)
我做了一些实验,添加了一些易于查找的构建前后事件(即启动注册表编辑器和记事本..)
在 Delphi 的 bin 目录中有一个名为 CodeGear.Delphi.Targets 的文件。在里面,在导入部分之后,我添加了:
<PropertyGroup>
<PreBuildEvent><![CDATA[regedit.exe]]></PreBuildEvent>
<PostBuildEvent><![CDATA[notepad.exe $(MSBuildProjectFile)]]></PostBuildEvent>
</PropertyGroup>
重新启动 IDE,一个新的空项目在构建前和构建后执行这些程序。请注意,尽管它们不会显示在项目配置屏幕上,但您可以覆盖它们,否定放在 CodeGear.Delphi.Targets 文件中的任何内容。便宜,但它似乎可以解决问题,如果特定项目需要,您仍然可以覆盖它。(当然,请确保备份原始文件。)
@Jen Smith:非常聪明。如果有人感兴趣,我现在已经使用您的想法来获取 madExcept 来修补二进制 exe 作为命令行构建的一部分,而无需自定义特定项目..:
将其放在 CodeGear.Delphi.Targets 的“导入”部分之后。
<PropertyGroup>
<PostBuildEvent><![CDATA["$(programFilesx86)\madCollection\madExcept\Tools\madExceptPatch.exe" "$(DCC_ExeOutput)$(MSBuildProjectName).exe" "$(MSBuildProjectDirectory)\$(MSBuildProjectName).mes"]]></PostBuildEvent>
</PropertyGroup>