2011-01-27 59 views
0

我最近被分配到一个发布工程团队,努力让我们的构建过程更具可管理性。在我们产品的历史中,我们只是在每个版本中都构建了版本控制库中的所有内容,因为它并不是一个时代。这包括我们拥有源代码的第三方产品(例如,包括企业库),我们自己的内部框架代码,最后是产品本身。然而,经过几年稳定的产品增长,这已经成为一个非常繁琐的过程。这就是说,我们想建立一种分层构建系统,其中只有产品(每天都在变化)建立在每天的基础上,而我们的框架代码(变化少得多)和我们的第三方代码(几乎从不)仅在它们更改时才构建。我们有一个符号&设置源代码服务器,以便于调试代码,比如我们的框架库,这些代码并不是每个版本都新建的,但我们仍在弄清楚如何促进这一点。为了记录,我们使用TFVC进行源代码控制。TFS:如何缓存框架构建以减轻构建过程?

我的问题是这些:这种事情使用什么样的做法?我们是否为这个构建的每个“层级”(即第三方的团队项目,框架和产品)分别建立了团队项目并将它们分成了另一个?我们是否曾将一层的构建产品检入下一个以确保依赖关系解决?如果不是,二进制文件在哪里生活?这些要求是否会要求我们使用GAC?

最后,如果有任何关于这类东西的指导,我喜欢做一些阅读;但是,由于我是新手创建/发布工程,我还不知道在哪里寻找。

谢谢!

回答

1

要回答你最后一个问题,有关于构建配置和管理的excellent book from Microsoft

关于你的第一个问题:我们分别处理我们的依赖关系。我们有一个编译我们的框架的构建。我们有另一个编译我们自己的项目的版本。

然而,作为我们第二个构建过程的一部分,我们在编译我们自己的项目之前,从我们的构建构建器的buildmachine中安装了这个设置。

这样,我们可以将我们的框架与我们的项目分开发布。我们的项目可以确定(通过修改构建配置)何时开始使用新版本。

该项目和框架有自己的TFS项目。

+0

很棒。粗略地说,这是我梦寐以求的方法。虽然自动化框架安装的想法非常有趣!我没有想到这一部分,而是以某种方式使用源代码管理来管理二进制文件。但是,只有通过使用安装程序才能使不同的构建相关联,这当然是有吸引力的。这是否意味着当您发货时,必须运行几个安装程序来安装产品,或者是否将最终产品安装程序中的依赖关系重新打包? – bwerks 2011-08-10 14:39:21