10

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

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

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

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

4

3 回答 3

5

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

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

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

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

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

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

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

于 2012-11-02T17:27:13.557 回答
4

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

于 2012-10-16T18:58:39.517 回答
2

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

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

所以最好的方法是:

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

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

于 2012-10-16T20:09:10.670 回答