【问题标题】:Delphi XE build events.. globally?Delphi XE 构建事件.. 全球?
【发布时间】:2011-05-25 22:45:49
【问题描述】:

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

谢谢

【问题讨论】:

  • +1。我也非常想要这个。每次我构建一些东西时,我都想要一个 .bat 来执行。现在我必须将这个脚本添加到每个新项目中,这很烦人。
  • 欢迎来到 StackOverflow,Jen。很高兴看到您能够在第一次提出一个很好的问题并给出一个很好的答案。 :)
  • 谢谢 :) 玩弄了几天,当然我在问了半个小时后就知道了,哈哈。希望 Embarcadero 在 IDE 中实现这样的东西他们的下一个版本,而不是不得不依赖一个kludge。

标签: delphi events build delphi-xe


【解决方案1】:

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

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

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

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

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

【讨论】:

  • 回答你自己的问题在 SO 上完全没问题,如果你在其他人之前弄清楚的话!
  • 到目前为止我只问了一个关于SO的问题,然后自己回答了!但将这些问题留在 SO 中,以便其他人可以找到您的答案。
【解决方案2】:

@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-28
    • 2014-08-15
    • 1970-01-01
    • 2012-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-22
    • 1970-01-01
    • 2010-12-18
    相关资源
    最近更新 更多