加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

delphi – 包(BPL)自动命名后缀

发布时间:2020-12-15 10:09:40 所属栏目:大数据 来源:网络整理
导读:我为Delphi编写了大量的组件和库,其中大部分需要使用BPL Packaging,以便将它们安装到IDE中. 这很简单,工作得很好,直到你想要维护单个包项目文件(在一个项目组中),而且还要为不同的Delphi版本编译和分发这些相同的包. 到目前为止,我已经为每个版本的Delphi创
我为Delphi编写了大量的组件和库,其中大部分需要使用BPL Packaging,以便将它们安装到IDE中.

这很简单,工作得很好,直到你想要维护单个包项目文件(在一个项目组中),而且还要为不同的Delphi版本编译和分发这些相同的包.

到目前为止,我已经为每个版本的Delphi创建了一个不同的软件包项目,并将Delphi版本标识符显式定义为后缀(例如Kinect_XE.bpl和Kinect_XE2.bpl).

我知道,在包项目的项目选项中,在描述下,有LIB前缀字段(更重要的是我的需要)LIB后缀.

我进一步意识到,如果我在LIB后缀中放置一个值,它将被附加到编译的BPL文件名的末尾.

但是,我的问题是,首先是否可以让IDE自动使用IDE / RTL版本号填充LIB后缀字段,如果是这样的话呢?

我相当确定这是可能的,因为看起来,vcl120.bpl(及其对应的每个版本的Delphi)可以被引用(作为要求)你自己的程序包使用vcl而不是输入完整的vcl120 .事实上,这是我希望实现的同样的行为…我的软件包可以内部引用彼此(如必要的),而不必提供特定于版本的引用来容纳后缀.

同样重要的是,解决这个问题将使我能够在单个项目组中维护一套项目文件(除了XE2之外,由于平台的添加,其项目文件不一定对以前版本的Delphi有很好的效果).

我怀疑我可能需要在LIB后缀字段中输入像$(VER)(或类似的东西)这样的值,但这似乎无法工作,我已经在寻找正确的解决方案.

希望你能帮忙!

更新1

我现在正在编写一个IDE插件,用于(至少)Delphi 2007到XE2,它为DLL和BPL项目提供了一个名为AutoSuffix的新选项.当切换为开启时,安装了AutoSuffix插件的任何IDE将立即将正确的IDE版本后缀应用于项目.

AutoSuffix插件将在随后的24小时内随时提供(免费),并且相应地更新此问题.

更新2

好的… Delphi 2007正在痛苦!到目前为止,我已经将AutoSuffix与2009年的XE2配合使用,但2007年需要更多的时间(耐心赞赏).

更新3

Embarcadero看起来好像听到了我们对版本之间更简单的包装统一的集体呼声.

马克将要推动这一点,看看未来版本的Delphi是否可以容纳{$LIBSUFFIX AUTO}功能.我希望很快听到这是否会是这样.如果是这样,它肯定会影响AutoSuffix在XE2和旧版本上工作的方式(目前它不提供简单的AUTO开关..它有自己的方法).

我现在希望的是,EMB将会认真对待这个请求,将其作为前进的一个整体功能提供,使其成为在现有版本上使用AutoSuffix来统一所有版本的过程的简单情况!

解决方法

AFAIK for Delphi达到XE2,这不是自动化的.

关于require子句:当你需要另外一个包的时候,你实际上使用的是不继承LIBSUFFIX的dcp.因此,在编译期间需要VCL.dcp就足够了,而VCL160.bpl实际上是在运行时使用的. DCP包括完整的BPL名称来解决这个问题.

这使得LIBSUFFIX方法优于简单的“为每个版本的Delphi重命名包”之一.

像QC83229这样建议的解决方案可以更容易地将软件包移植到更新的Delphi版本,但是您仍然坚持不能向后兼容的dproj文件.

我通常为每个Delphi版本使用不同的文件夹,其中只存储项目文件.对于新的Delphi版本,我只需要复制一个文件夹并更改LIBSUFFIX.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读