11

开始大量使用 XE 中的构建事件系统,但我注意到的一件事是我无法在默认项目设置中设置默认构建事件。是否有任何解决方法/黑客/任何可以使这成为可能的方法?我正在查看 bin 目录中的 CodeGear.Group.Targets 和 CodeGear.Delphi.Targets,如果这甚至可行,那是我应该看的地方吗?

谢谢

4

2 回答 2

15

啊哈。回答了我自己的问题。(某处有删除按钮吗?大声笑)

我做了一些实验,添加了一些易于查找的构建前后事件(即启动注册表编辑器和记事本..)

在 Delphi 的 bin 目录中有一个名为 CodeGear.Delphi.Targets 的文件。在里面,在导入部分之后,我添加了:

<PropertyGroup>
     <PreBuildEvent><![CDATA[regedit.exe]]></PreBuildEvent>
     <PostBuildEvent><![CDATA[notepad.exe $(MSBuildProjectFile)]]></PostBuildEvent>
</PropertyGroup>

重新启动 IDE,一个新的空项目在构建前和构建后执行这些程序。请注意,尽管它们不会显示在项目配置屏幕上,但您可以覆盖它们,否定放在 CodeGear.Delphi.Targets 文件中的任何内容。便宜,但它似乎可以解决问题,如果特定项目需要,您仍然可以覆盖它。(当然,请确保备份原始文件。)

于 2010-12-15T14:47:53.477 回答
1

@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>
于 2011-07-08T21:44:06.953 回答