使用Delphi软件包可能存在哪些问题

使用Delphi软件包可能存在哪些问题,delphi,delphi-xe2,Delphi,Delphi Xe2,我负责一套100多个delphi(XE2)项目,这些项目目前都没有包。一些可执行文件和DLL包括一些大型第三方组件集,这些组件集的大小增加了几兆字节。我们的安装程序已经超过100MB,有几个可执行文件超过10MB,几个大约4MB,还有很多在1到2MB之间。我正在考虑为一些第三方组件和VCL使用软件包。通常,可视组件仅从可执行文件中使用,而不是从DLL中使用。DLL必须保持为DLL,因为有些是从其他语言调用的 如果我们改用软件包,需要注意的主要注意事项和危险是什么?什么东西会断裂?它会影响调试、测

我负责一套100多个delphi(XE2)项目,这些项目目前都没有包。一些可执行文件和DLL包括一些大型第三方组件集,这些组件集的大小增加了几兆字节。我们的安装程序已经超过100MB,有几个可执行文件超过10MB,几个大约4MB,还有很多在1到2MB之间。我正在考虑为一些第三方组件和VCL使用软件包。通常,可视组件仅从可执行文件中使用,而不是从DLL中使用。DLL必须保持为DLL,因为有些是从其他语言调用的

如果我们改用软件包,需要注意的主要注意事项和危险是什么?什么东西会断裂?它会影响调试、测试、构建(使用FinalBuilder)或维护的便利性吗?运行时内存利用率是否会不可接受地增加,因为我们将在运行时加载整个BPL,而不仅仅是链接器所需的单元


我知道,唯一正确的答案将来自于在我们的特定应用程序中尝试它,但我非常感谢任何人的建议,他们要么走这条路,要么拒绝走这条路。

我避免像瘟疫一样的运行时BPL。原因如下:

答:您需要考虑版本控制。当有人更新一个BPL或EXE而不是其他BPL或EXE时会发生什么

你需要想想地狱。你的路径是什么,你的应用程序的所有部分都在同一个文件夹中,还是在路径上的目录中

您需要考虑在运行时丢失一个或多个文件的可能性。这通常会导致应用程序中断。实际上,有些人使用它的效果很好(一些没有为FeatureX付费的客户甚至没有收到BPL),但大多数情况下,这只是另一个麻烦来源

D.在不太可能的情况下,您需要修复VCL源中的错误,您真的想将重建VCL BPL添加到有趣的维护编程活动列表中吗

E.在我工作的一个基于BPL的大型应用程序中,我发现在一个项目组中打开的主EXE及其所有插件BPL子部分导致Delphi(当时的XE)的稳定性大大低于我加载类似大型但单个可执行项目时的稳定性(崩溃更多)。IDE问题并非闻所未闻,尤其是在项目组中多个项目之间发生依赖关系的情况下


每当提到使用软件包的概念时,我发现喝一杯烈性饮料,休息8小时就足够了。

简单的回答是,你会用简单换尺寸。您将能够减少安装程序的大小,但代价是复杂性大大增加。是的,我知道这种权衡。这就是为什么我在寻找一个答案,其中突出了一些在实践中遇到的困难的例子。我想还没有人有勇气试着给你写一份清单。像这样的开放式问题往往不会产生太多的热情。我试过了。请随意编辑和改进我的答案。非常感谢。总而言之,按照你最后一句话的建议,我下定了决心。