开始在XE中的构建事件系统中大量使用,但我注意到的一件事是我无法在默认项目设置中设置默认构建事件。是否存在任何可行的解决方法/黑客攻击?我正在查看bin目录中的CodeGear.Group.Targets和CodeGear.Delphi.Targets,如果这是可行的,那么我应该在哪里看?
谢谢
开始在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:非常聪明。如果有人感兴趣,我现在用你的想法疯狂除了修补二进制exe作为命令行构建的一部分而不必定制特定的项目..:
把它放在CodeGear.Delphi.Targets的'Import'部分之后..
<PropertyGroup>
<PostBuildEvent><![CDATA["$(programFilesx86)\madCollection\madExcept\Tools\madExceptPatch.exe" "$(DCC_ExeOutput)$(MSBuildProjectName).exe" "$(MSBuildProjectDirectory)\$(MSBuildProjectName).mes"]]></PostBuildEvent>
</PropertyGroup>