如何强制预构建脚本在每次编译时运行

发布于 2024-11-11 18:28:40 字数 369 浏览 1 评论 0原文

我们目前使用Delphi 2009 和GIT 来开发应用程序。我们已经设置了一个预构建脚本来使用 git 中的信息生成版本号和构建 ID,并将其编译为包含在项目中的资源。问题是该脚本不能在常规编译中运行。这意味着其他开发人员最终可能会遇到实际版本号与资源中的版本号之间的差异(尤其是在 git 中切换分支时)。

由于我们使用我们的软件进行一些关键计算,因此我们希望使用此构建 ID 来重现计算并跟踪问题。

除了试图强迫我的开发人员频繁按 Shift-F9 之外,我如何确保预构建脚本在必要时运行(最好是在每次编译时)?

Jason

更新:确实,预构建脚本在每次编译时都会运行。问题是我预计在 git 中创建标签后按 F9 会得到不同的结果,即使没有更改代码。

We currently use Delphi 2009 and GIT to develop an application. We have set up a prebuild script to generate a version number and build ID using information from git and compile this as a resource that is included in the project. The problem is that this script doesn't run on a regular compile. This means that the other developers can end up with a discrepancy between the actual version number and the number in the resource (especially when switching branches in git).

Since we use our software to make some critical calculations, we would like to use this build id to reproduce calculations and track down problems.

Other than trying to force my developers to frequently press shift-F9, how can I ensure that the the prebuild script gets run when necessary (ideally at each compile)?

Jason

UPDATE: It's true that the pre-build script gets run at each compile. The problem was that I expected to get a different result pressing F9 after making a tag in git, even though no code had changed.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

腻橙味 2024-11-18 18:28:40

我们通过编写使用 IOTAIDENotifier50 接口的自定义 IDE 插件解决了类似的问题。具体使用BeforeCompile方法来测试一些必需的项目设置并生成动态版本信息(VERSIONINFO资源)。每种类型的构建(编译和构建)都会调用它。我们还生成一个唯一的 exe 序列号并记录所有内容,这有助于我们跟踪问题,并且与您的脚本类似。为了完整起见,我们仅在 Delphi 2007 和 Delphi XE 中进行了此操作。

We solved a similar issue by writing a custom IDE plugin which uses the IOTAIDENotifier50 interface. Specifically using the BeforeCompile method, to test some required project settings and also generate dynamic version information (VERSIONINFO resource). It gets called for every type of build (compile and build). We also generate a unique exe serial number and log everything, which helps us track down issues and is similar to your script. For completeness we have only done this in Delphi 2007 and Delphi XE.

末骤雨初歇 2024-11-18 18:28:40

预构建操作在每次编译之前运行。

您在评论中指出,当您按 F9 时,操作有时不会运行。这是有道理的,因为 F9 或运行仅在源被认为已更改时才调用编译。

BeforeCompile 通知程序插件的行为方式完全相同。您的解决方案是确保在使用 Ctrl+F9 运行之前进行编译。

Pre build actions do run before every compile.

You state in a comment that the actions sometimes don't run when you press F9. That makes sense because F9, or Run, only invokes a compile if source is deemed to have changed.

A BeforeCompile notifier plug in will behave in exactly the same way. Your solution is to make sure that you compile before running using Ctrl+F9.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文