【发布时间】:2012-02-06 04:51:49
【问题描述】:
我为 Delphi 编写了很多组件和库,其中大部分都需要使用 BPL 打包,以便它们可以安装到 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) (或类似的东西)这样的值,但这似乎不起作用并且我在 Google 上搜索了正确的解决方案。
希望你能帮忙!
更新 1
我现在正在编写一个 IDE 插件,用于(至少)Delphi 2007 to 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 来统一整个流程版本!
【问题讨论】:
-
不是编译器版本,而是 IDE/RTL 版本。
-
正确...已相应编辑!我犯了一个愚蠢的错误!
-
我得到要么没有报告 #83229,要么您无权查看该报告。当我尝试访问它时(登录)
-
抱歉,私人报告。我将内容添加到我的答案中。