delphi – 包(BPL)自动命名后缀
我为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. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |