如何用D2007区分编译和构建?

mso*_*ohn 5 delphi delphi-2007 toolsapi

我已经成功注册了IDE通知程序(IOTAIDENotifier80),因此我收到了AfterCompile通知.

是否有可能找出项目是否构建而不仅仅是编译/制作?

我已经找到了关于实现a的答案,IOTAProjectCompileNotifier但这在D2007中不可用.

还有其他方法吗?我没有办法,因为这只适用于内部专家.

更新:我需要使用包含版本信息资源的外部.rc文件复制"AutoInc内部版本号"功能.也许这可以通过BuildEvents完成?虽然我喜欢在IDE中记录消息的能力,但显示更新的版本号...

Sam*_*Sam 1

我不知道如何编写专家或连接 IDE,而且我害怕蹦床。话虽如此,我注意到您可以通过监视项目输出文件夹中文件的时间戳来区分编译和构建之间的差异,但只有在没有代码(*.pas 或 *.dfm)时这种差异才会明显自上次编译或构建以来已更改。换句话说,当代码发生更改时,您无法通过监视时间戳来区分差异。但是,当自上次编译或构建以来没有代码更改时,编译只会更改 exe 的时间戳(dcu 时间戳不会更改)。

因此,在没有其他更优雅的解决方案的情况下,并且只有当您真的非常需要这些信息(即它是编译的还是构建的?)时,我才能为您建议一个由两部分组成的解决方案。

第 1 部分:编写一个过程来监视输出文件夹中时间戳的变化,以及

第 2 部分。告诉您的开发人员同事,D2007 中存在一个错误,该错误使您的构建过程变得复杂,但只需编译两次或构建两次即可轻松克服此错误(或者如果您知道如何自动化此操作,那就继续吧)。如果您可以让开发人员编译两次或构建两次,那么在第二次编译或构建时,您将能够通过测试 dcu 的时间戳在第二次编译或构建时是否更改来推断它是编译还是构建。

现在,我会去站在顽皮的角落里问自己“为什么是我?”。干杯。