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

Lin*_*nas 8 delphi components delphi-xe

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

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

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

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

Hug*_*gie 5

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

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

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

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

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

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

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


Rem*_*eau 4

任何想要编译给定项目的人都必须首先安装该项目正在使用的任何组件。这是无法回避的,除非项目直接包含组件源代码并在代码中实例化组件而不是使用 DFM。AFAIK,没有任何 IDE 工具可以为您自动安装(卸载)每个项目的组件。

  • 有一种方法可以通过创建一个 IDE 插件来实现此目的,该插件会自动检测是否必须重新编译“项目特定组件包”,并在打开项目组时将其安装到 IDE 中,并在关闭项目组时将其卸载。但为了做到这一点,您必须修补并连接到 IDE,因为 OpenToolsAPI 还不够丰富,无法做到这一点。这还要求包具有干净的终结代码。 (6认同)