这很简单,并且可以很好地工作,直到您想要维护一组包项目文件(在单个项目组中),但是还希望为不同的Delphi版本编译和分发这些相同的包。
迄今为止,我为每个Delphi版本创建了一个不同的Package Project,并显式地定义了Delphi版本标识符作为后缀(例如Kinect_XE.bpl和Kinect_XE2.bpl)。
我知道,在包项目的“项目选项”下,“描述”中有“LIB前缀”和(对于我的需求更为重要的)“LIB后缀”字段。
我进一步了解到,如果我在“LIB后缀”中放置一个值,它将附加到编译后的BPL文件名的末尾。
我的问题是,首先是否有可能让IDE自动使用IDE / RTL版本号填充“LIB后缀”字段,如果可以...如何实现?
我相当肯定这是可能的,因为似乎vcl120.bpl(及其各自版本的对应项)可以作为要求引用您自己的软件包,仅使用vcl而不必键入完整的vcl120。事实上,我希望实现的就是这种行为...我的软件包可以相互引用(如果需要),而无需提供特定于版本的引用以适应后缀。
同样重要的是,解决这个问题将使我能够在单个项目组中维护一组项目文件(除了XE2,因为它的项目文件由于“平台”添加可能与Delphi的旧版本不兼容)。
我怀疑我需要在LIB后缀字段中放置像$(VER)(或类似的内容),但这似乎不起作用,我已经搜遍谷歌寻找正确的解决方案。
希望你能帮忙!
更新1
我现在正在编写一个IDE插件,可用于(至少)Delphi 2007到XE2,并且为DLL和BPL项目提供名为AutoSuffix的新选项。当切换为On时,任何安装有AutoSuffix插件的IDE都将立即将正确的IDE版本后缀应用于该项目。
AutoSuffix插件将在接下来的24小时内免费提供给所有人,并相应地更新本问题。
更新2
好的... Delphi 2007有点麻烦!到目前为止,我已经使AutoSuffix与2009到XE2配合使用,但是2007需要更多时间(请耐心等待)。
更新3
看来Embarcadero听到了我们关于简化版本之间软件包统一的呼声。
Mark将推动此事,以查看未来版本的Delphi是否可以容纳{$LIBSUFFIX AUTO}功能。我希望很快就能听到回音。如果是这样,它肯定会影响AutoSuffix在XE2和旧版本上的工作方式(因为目前它没有提供简单的AUTO开关...它有自己的方法)。
我现在的希望是EMB会认真考虑这个请求,并将其作为未来的一个重要功能提供,以便在现有版本上使用AutoSuffix以统一整个过程!