如何在Delphi中处理项目特定的组件?

时间:2012-10-16 17:38:56

标签: delphi components delphi-xe

我们说我们有一个团队可以处理许多不同的项目。每个团队成员在其开发周期中使用不同的视觉/非视觉控件/组件。由于Delphi要求在IDE中全局编译和安装每个组件,如何在处理由其他团队成员启动的项目时管理这种情况?

如果我可以从版本控制中检出项目的源代码并且能够立即编译它,那将会很棒。我不在乎或有时不知道这个项目需要哪些视觉或非视觉组件,我想它们都应该包含在项目来源中。

也许有一些工具可以读取主项目文件或目录,并在项目加载时编译/安装所有需要的组件(并在项目关闭时卸载它们)?

你如何在Delphi中处理这个问题?

3 个答案:

答案 0 :(得分:5)

在我们公司,我们遇到同样的问题。 我们通过强制每个人将所有必要的库路径添加到他们的delphi ide来解决这个问题。

我们正在使用一个额外的sdk / framwork存储库,其中包含每个人的所有组件/ sdks /框架。 我们保留一个文本文件,列出所有包含其版本的库,安装信息等。 每个人都检查他们想要的库,所以我们没有双库或不同的版本。

由于我们都在Windows下工作,并且由于Delphi在注册表中保留了其路径和(afaik)已安装的组件信息,因此我们提取了这些信息。 我们在sdk存储库trunk中为每个使用过的delphi版本存储一个.reg文件。

因此,如果有人更改了框架,他会更新.reg文件中每个人的信息并提交。

现在,如果有人想设置他们的开发机器,他们会检查sdk,添加例如xe2.reg信息到他们的注册表,然后检查项目和... tada。编译。

我们还没有尝试过提取“已安装的组件”包。那就是我们的待办事项清单。 另一种方法是保留批处理文件,以便一次构建和安装所有sdk软件包。但我不知道是否可以在delphi中通过命令行安装组件。

像JEDI安装程序这样的东西会很好。安装程序检测已安装的Delphi版本和构建版本。很好地安装一切。 可自由配置的版本会很好,所以添加所有sdks - >安装在每个版本上..完美。

答案 1 :(得分:4)

任何想要编译给定项目的人都必须首先安装项目正在使用的任何组件。除非项目直接包含组件源代码并在代码中实例化组件而不是使用DFM,否则无法解决这个问题。 AFAIK,没有IDE工具可以基于每个项目自动安装组件(un)。

答案 2 :(得分:2)

限制您的团队将使用哪些组件和库是非常明智的。如果每个成员决定他们将使用哪个组件,那么最终的可执行文件或包将会增长很多,并且您可以在库之间存在一些不兼容性。

此外,购买和更新非常相似的库可能会产生额外费用。请记住,每次更新Delphi时,您都应该从大多数库中购买新的许可证。

所以最好的方法是:

  • 询问每个开发人员正在使用哪些库,并与他们讨论每个库的实际需求;

  • 对所需的库进行编目,并将其安装在您将编译最终代码的机器上;