我们在Visual Studio Online中有一个团队项目,它使用由不同开发团队维护的多个repos。
E.g.
Common repo - common framework, libraries
App1 repo - First application
App2 repo - Second application
小学欲望
App1,App2团队依赖于Common项目/程序集来获得基本功能。我们发现为VSO配置构建定义(在Visual Studio 2013中),它似乎只关注单个Git存储库。
如何从多个存储库中提取代码源来执行复合构建?编译公共项目,使程序集可供依赖的应用程序项目参考,甚至可能从Common repo中提取特定版本(标记),依赖者应该使用它。
现在我们已经明确地预编译并将公共程序集打包成特定版本,然后依赖解决方案将其作为固定二进制库资产包含在他们自己的存储库中。
高级欲望
应用程序实际上是一个更宏大系统的子系统。如何使用单个Build定义以统一的顺序从所有这些不同的存储库构建代码?
答案 0 :(得分:3)
我会以不同的方式解决问题。
首先获取通用框架/库代码的编译输出,然后从中创建NuGet包。然后在App1和App2应用程序中引用NuGet包。
有很多选项可以让NuGet易于使用,例如私人MyGet Feed。例如,MyGet也有一篇关于他们VSO integration的帖子,但是你真正需要的是一种让普通/框架nuget包可供其他应用程序使用的方法。
请注意,此方法还有助于版本控制和依赖关系管理,并且不需要拥有分阶段构建管道,因为您可以相互独立地构建框架和应用程序。