我照看了一套100多个delphi(XE2)项目,这些项目目前都是在没有包的情况下构建的。几个可执行文件和DLL包括一些大的第三方组件集,它们的大小增加了几兆字节。我们的安装程序已经超过100MB,一些超过10MB的可执行文件,几个大约4MB,以及大约1到2 MB的可执行文件。我正在考虑使用一些第三方组件和VCL的软件包。通常,可视组件仅用于可执行文件,而不是DLL。 DLL必须保留DLL,因为有些是从其他语言调用的。
如果我们切换到使用套餐,需要注意哪些主要考虑因素和危险?可能会破坏什么?它是否会影响调试,测试,构建(使用FinalBuilder)或维护的便利性?运行时内存利用率是否会无法接受,因为我们将在运行时加载整个BPL而不仅仅是链接器所需的单元?
我知道唯一真正的答案来自于我们在特定应用程序中的尝试,但我非常感谢那些已经走上这条道路或远离它的人的一些建议。
答案 0 :(得分:1)
我避免像瘟疫那样的运行时BPL。原因如下:
一个。你需要考虑版本控制。当有人更新ONE BPL或EXE而不更新其他人时会发生什么。
B中。你需要考虑DLL地狱。你的路径是什么,你的应用程序的所有部分都在同一个文件夹中,或者它们是否在路径中的目录中?
℃。您需要考虑在运行时丢失一个或多个文件的可能性。这通常会导致应用程序损坏。有些人实际上使用这个效果很好(一些没有支付功能X的客户甚至没有收到BPL),但大多数情况下,这只是另一个麻烦来源。
d。如果您需要修复VCL源中的错误,您是否真的想要将重建VCL BPL添加到Fun Maintenance Programming Activities列表中?
电子。在我工作的一个基于BPL的大型应用程序中,我发现在一个项目组中打开的主要EXE及其所有插件BPL子部件导致Delphi(当时的XE)的稳定性(崩溃程度)大大低于当我加载类似的大型,但单可执行项目。 IDE问题并非闻所未闻,特别是在项目组中多个项目之间发生依赖关系的情况下。
每当使用包装的概念出现时,我发现一个好的烈性饮料,以及从编程中断8小时通常就足够了。