5

我已经成功注册了一个 IDE 通知程序 ( IOTAIDENotifier80),所以我收到了 AfterCompile 通知。

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

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

还有什么办法吗?我可以采用无证方式,因为这仅适用于内部专家。

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

4

1 回答 1

1

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

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

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

第 2 部分。告诉您的开发人员在 D2007 中存在一个使您的构建过程复杂化的错误,但是这个错误很容易通过简单地编译两次或构建两次来克服(或者如果您知道如何自动执行此操作,那么请继续努力)。如果您可以让您的开发人员编译两次或构建两次,那么在第二次编译或构建时,您将能够通过测试 dcu 的时间戳在第二次编译或构建时是否更改来推断它是编译还是构建。

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

于 2013-10-17T00:57:59.280 回答