【发布时间】:2008-10-14 08:16:51
【问题描述】:
有没有办法根据项目选择设计时包?
包在大型项目中非常有用,可以让构建时间保持在可接受的范围内,但它们在那些大型项目中也是一个真正的皮塔。当一个开发人员添加一个新包时,它会中断为所有其他人构建,直到他们在他们的机器上安装新包。然后是包的版本控制...
那么有没有人为此提供适当的解决方案? (这已经困扰我多年了)
【问题讨论】:
标签: delphi
有没有办法根据项目选择设计时包?
包在大型项目中非常有用,可以让构建时间保持在可接受的范围内,但它们在那些大型项目中也是一个真正的皮塔。当一个开发人员添加一个新包时,它会中断为所有其他人构建,直到他们在他们的机器上安装新包。然后是包的版本控制...
那么有没有人为此提供适当的解决方案? (这已经困扰我多年了)
【问题讨论】:
标签: delphi
在我之前的工作中,我编写了一个小工具来帮助我们对包进行版本控制。我真的应该在业余时间重新创建该工具并使其可用。不过这个工具并不难写,所以也许你可以自己实现类似的东西。
基本上它是这样工作的:
一个可能的扩展是能够保存/加载包的选择并将该选择存储在每个项目中,这样您就可以只加载特定项目所需的包。
当公司从 Delphi 5/7 迁移到 Delphi 2007 时,我实现了所有这些。我们之前在包版本控制方面遇到了很多问题,并希望通过某种方式对所有不同的包进行版本控制。
这种方法提供了一些不错的优势:
这不仅仅用于一些内部组件,该 repo 还包括一些大型组件包:Raize Components、JCL/JVCL(尽管使用他们的安装程序而不是工具)、DevExpress Quantum Grid 3 和4、TurboPower AsyncPro
【讨论】:
这也不容易。不过,您可以通过使用自定义注册表 hack 以及您感兴趣的每个配置的特定 bds 快捷方式来做到这一点:
要使用,只需创建一个新的快捷方式,然后 修改命令行以通过例如 -rMyAlternateBDSReg。然后在启动一次之后,注册条目是 创建,他们可以配置 他们想要的所有备用注册表, 删除包等,而不 担心会破坏默认设置 安装。
来自codegear
如果您为每个项目设置了配置,则可以为给定项目启动相应的快捷方式。这不是自动的,但总比一直拥有一切要好。
一个很好的副作用是加载时间将得到改善。
【讨论】:
我们将包的源代码与重建它们的批处理文件一起放在源代码控制中。如果包的树发生变化,那么我们会重建它们。这并没有解决安装新包的问题,但是有一些注册表点击可以解决这个问题,所以我们可以包含 .reg sn-ps 来处理这个问题。
【讨论】: