Delphi XE在全球范围内构建活动?

时间:2010-12-15 14:13:29

标签: delphi events build delphi-xe

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

由于

2 个答案:

答案 0 :(得分:15)

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

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

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

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

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

答案 1 :(得分:1)

@Jen Smith:非常聪明。如果有人感兴趣,我现在用你的想法疯了除了修补二进制exe作为命令行构建的一部分而不必定制特定的项目..:

将它放在CodeGear.Delphi.Targets ..的

  <PropertyGroup>
    <PostBuildEvent><![CDATA["$(programFilesx86)\madCollection\madExcept\Tools\madExceptPatch.exe" "$(DCC_ExeOutput)$(MSBuildProjectName).exe" "$(MSBuildProjectDirectory)\$(MSBuildProjectName).mes"]]></PostBuildEvent>
  </PropertyGroup>