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

标签 delphi delphi-2007 toolsapi

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

是否可以查明项目是已构建还是正在编译/制作?

我找到了this answer关于实现 IOTAProjectCompileNotifier 但这在 D2007 中不可用。

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

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

最佳答案

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

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

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

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

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

关于delphi - 如何区分用D2007编译和构建?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19381300/

相关文章:

delphi - 如何将消息发布到需要自定义消息结构的句柄?

delphi - 如何使用 FormatDateTime 返回与当前年份连接的默认日期?

德尔福 2007 : save only the breakpoint options in the DSK file?

delphi - 自动将单元添加到项目中

delphi - 为什么 `as` 运算符可能会抛出令人讨厌的 EAccessViolation 而不是正常的 EIntfCastError ?

delphi - 使用OTA返回特定平台的库路径

string - 为什么将字符串保存到文件的方式会影响结果

delphi - 64 位和 32 位之间的浮点差异(带舍入)

德尔福 2007 和 XE2 : Using NativeInt

delphi - 我什么时候应该添加对 Delphi 项目的文件引用?