有没有办法在项目基础上选择设计时包?
软件包在大型项目中非常有用,可以使构建时间保持可接受,但它们在这些大型项目中也是一个真正的pita。当一个开发人员添加一个新软件包时,它会为所有其他软件包打破,直到他们在他们的机器上安装新软件包。然后是包的版本化......
有人为此提供了合适的解决方案吗? (多年来一直困扰着我)
答案 0 :(得分:8)
在我以前的工作中,我写了一个小工具来帮助我们使用版本控制包。我真的应该在业余时间重新创建该工具并使其可用。虽然这个工具并不难写,所以也许你可以自己实现类似的东西。
基本上它的工作原理如下:
可能的扩展是能够保存/加载选择的包并将选择存储在每个项目中,这样您就只能加载特定项目所需的包。
当公司从Delphi 5/7迁移到Delphi 2007时,我实现了所有这些。之前我们在包版本化方面遇到了很多问题,并想要一些方法来版本化所有不同的包。
这种方法提供了一些很好的优势:
这不仅仅用于一些内部组件,repo还包括一些大组件包:Raize Components,JCL / JVCL(使用他们的安装程序而不是工具),DevExpress Quantum Grid 3和4,TurboPower AsyncPro
答案 1 :(得分:6)
这也不容易。您可以使用自定义注册表黑客,以及您感兴趣的每个配置的特定bds快捷方式来执行此操作:
要使用,只需创建一个新的快捷方式即可 修改命令行以通过例如 -rMyAlternateBDSReg。启动一次后,reg条目就是 已创建,他们可以配置 备用注册表他们想要的, 删除包等,没有 担心弄乱默认值 安装。
来自codegear
如果为每个项目设置配置,则可以为给定项目启动相应的快捷方式。这不是自动的,但它总比把所有东西都放在那里更好。
一个好的副作用是加载时间会得到改善。
答案 2 :(得分:0)
我们将包中的源代码放在源代码管理中,同时还有一个重建它们的批处理文件。如果包中的树发生了变化,那么我们重建它们。这并不涉及安装新的软件包,但是有注册表命中可以解决这个问题,所以我们可能会包含.reg片段来处理它。