TFS:如何缓存框架构建以减轻构建过程?

发布于 2024-10-14 11:00:19 字数 560 浏览 10 评论 0原文

我最近被分配到一个发布工程团队,努力使我们的构建过程更易于管理。在我们产品的历史中,我们只是在每次构建时都在版本控制存储库中构建了所有内容,因为这样做并不需要太多时间。这包括我们拥有源代码的第三方产品(例如,包括企业库)、我们自己的内部框架代码,最后是产品本身。然而,经过几年的稳定产品增长,这已成为一个非常繁琐的过程。

也就是说,我们希望建立一种分层构建系统,其中只有产品(每天都在变化)是每天构建的,而我们的框架代码(变化频率要低得多)和第三方代码(几乎从不) ) 仅当它们发生变化时才构建。我们有一个符号&设置源服务器以方便调试代码,例如每个版本都不是新建的框架库,但我们仍在研究如何促进这一点。作为记录,我们使用 TFVC 进行源代码控制。

我的问题是:这种事情采用什么样的做法?我们是否为此构建的每一“层”建立单独的团队项目(即第三方、框架、产品的团队项目)并将它们相互分支?我们是否曾经将一层的构建产品签入到下一层以确保依赖性得到解决?如果不是,二进制文件存放在哪里?这些要求是否要求我们使用 GAC?

最后,如果有关于此类事情的任何指导,我很乐意阅读;但是,由于我是构建/发布工程的新手,我还不知道该去哪里寻找。

谢谢!

I've recently been assigned to a release engineering team in an effort to make our build process more managable. In our product's history, we simply built everything in our version control repository with every build since it wasn't that much of a timesink to do so. This includes third-party products for which we have source (including Enterprise Library, for example), our own in-house framework code, and finally the product itself. After several years of steady product growth, however, this has become a very cumbersome process.

That said, we'd like to establish a sort of tiered build system wherein only the products (which change every day) are built on a daily basis, while our framework code (which changes much less often) and our thirdparty code (almost never) are built only when they change. We have a symbol & source server set up to facilitate debugging code such as our framework libraries that aren't newly built which each version, but we're still figuring out how to facilitate this. For the record, we use TFVC for source control.

My questions are these: what kinds of practices are used for this kind of thing? Do we set up separate team projects for each "tier" of this build (i.e. team project for thirdparty, for framework, for products) and branch them into one another? Do we ever check in the build products of one tier into the next to ensure dependencies resolve? If not, where do the binaries live? Would these requirements demand that we use the GAC?

Finally, if there is any guidance about this kind of thing I've love to do some reading; but, as I'm new to build/release engineering, I don't yet know where to look.

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

ゞ花落谁相伴 2024-10-21 11:00:19

首先回答你的最后一个问题,有一本来自 Microsoft 的关于构建配置的优秀书籍和管理。

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

然而,作为第二次构建过程的一部分,我们在编译我们自己的项目之前,在构建机器上安装框架构建的设置。

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

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

To answer your last question first, there's an excellent book from Microsoft about build configuration and management.

With regards to your first question: We handle our dependencies separately. We have a build that compiles our framework. We have another build that compiles our own projects.

However, as a part of the process of our second build, we install the setup from our framework build on the buildmachine before compiling our own project.

This way, we can release our framework separately from our projects. Our projects can determine (by modifying the build configuration) when to start using a new version.

The project and the framework have their own TFS projects.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文