如何更改依赖文件的文件扩展名

5
我正在构建一个使用Delphi Packages(BPL)作为插件的程序,但我想使用自定义扩展名来显示这些文件具有特定的用途,而不仅仅是BPL。这个方法很好,直到我需要一个包依赖于另一个包。然后编译器会自动创建一个带有BPL扩展名的二进制文件。
这个问题可以通过十六进制编辑器轻松解决,但这是一个极端的解决方案。有没有办法让编译器在第一时间生成具有正确依赖关系名称的包?
编辑:到目前为止,回答似乎没有理解问题。
我知道如何使用自定义TEP扩展名创建包,而不是BPL扩展名。但如果我有package1.TEP和package2.TEP,package2依赖于package1,然后我尝试加载package2,它会出现错误,因为找不到“package1.BPL”。我想要的是找到一种更简单的方法让package2查找正确的文件名“package1.TEP”,而不涉及在创建后编辑二进制文件。是否有任何方法可以实现这一点?

你好,来自2022年的我!我遇到了同样的问题。也许你已经找到了解决方案?如果你能与我们分享一下就太好了! - Josef Švejk
1
@JosefŠvejk 好久不见了,但如果我没记错的话,我最终使用了一个二进制编辑器工具,在构建后作为一个搜索和替换文件的步骤。 - Mason Wheeler
谢谢您的回答!我以为这样的任务可以在没有第三方工具的情况下完成)) - Josef Švejk
2个回答

0

最简单的解决方案是使用后构建事件将目标文件从*.BPL重命名为您需要的特定扩展名。

编辑: 您可以编写一个单独的补丁程序来搜索和修补有问题的二进制文件,并将其作为后构建过程的一部分运行。如果对编译器进行了修补,则可以轻松删除您的步骤。


我已经明白了。我担心的不是文件名的更改,而是依赖于它的其他包中对它的引用。 - Mason Wheeler
1
啊,这开始听起来像是一个缺陷。我会通过QualityCentral进行报告。 - skamradt

0

使用{$E}指令。


不,再说一遍,这不是我要找的。 - Mason Wheeler
我刚试了一下,它可以正常运行。忽略IDE消息即可。在运行时,一切都很好,静态导入也是正确的,扩展名已更改 - 我通过依赖视图器进行了检查。 - Ondrej Kelle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接