Dependencies TeamCity中的自动依赖项(或其他连续构建)?

Dependencies TeamCity中的自动依赖项(或其他连续构建)?,dependencies,continuous-integration,teamcity,Dependencies,Continuous Integration,Teamcity,我正在考虑在工作中实现一个非常大的连续构建(数百个VisualStudio解决方案,数千个项目)。它包括.NET、C++和VB6代码。我们有一些基于TeamCity的解决方案,但依赖项设置不正确。保持源代码和TeamCity(或其他工具)之间的依赖关系在这种规模上听起来完全不现实有人知道TeamCity中是否有自动检测解决方案依赖关系的工具/插件吗?使用其他持续集成工具如何?即使它只适用于.NET项目,也会有很大帮助 我发现了一个小的命令行工具(),它说它通过监视文件访问来推断依赖关系。似乎可以

我正在考虑在工作中实现一个非常大的连续构建(数百个VisualStudio解决方案,数千个项目)。它包括.NET、C++和VB6代码。我们有一些基于TeamCity的解决方案,但依赖项设置不正确。保持源代码和TeamCity(或其他工具)之间的依赖关系在这种规模上听起来完全不现实有人知道TeamCity中是否有自动检测解决方案依赖关系的工具/插件吗?使用其他持续集成工具如何?即使它只适用于.NET项目,也会有很大帮助

我发现了一个小的命令行工具(),它说它通过监视文件访问来推断依赖关系。似乎可以将此技术应用于更大规模的构建工具,但我不知道是否已经完成。或者可能还有其他解决方案。

检测很困难

我公司的工具供拥有数百个相互依赖组件的团队使用,这些团队需要管理这些构建,并且只需要智能地重建受给定更改影响的组件

我见过的一种非常成功的方法是将依赖项定义向下推给开发人员。一些团队要求他们管理一个列出其解决方案间依赖关系的文件——“需要下载哪些其他内容并将其放入lib/bin目录以供您的解决方案编译”。这类似于许多Java开发团队对Maven所做的工作。我希望在开发团队中分发依赖项定义,而不是尝试检测


此时,构建管理工具的作用是在构建时解析该文件,并在后台更新其依赖关系图模型。这些信息既可用于工件检索,也可用于触发相关构建

我来看看安希尔普罗。我试图避免对依赖项有两种定义,但我想我们会看看这是否可行。我发现了一个小的命令行工具(),它说它通过监视文件访问来推断依赖关系。似乎可以将此技术应用于更大规模的构建工具,但我不知道是否已经完成了。推断这些文件级依赖关系作为大型构建的一部分是可能的。ClearCase的ClearMake就是这样工作的。不过,我认为,在这种情况下,将事情分解为明确的解决方案会失去很多好处。也许你的工具工作方式有所不同。我还没有尝试过Tup,因为我认为它没有分布式构建、电子邮件通知、挂起的构建检测、漂亮的web界面、用户和权限等功能。它被设计为一个小型工具。但它似乎可以处理通过MSBuild构建的VisualBuild解决方案,除非我遗漏了什么。如果有人将类似于Tup的依赖方法应用到大型构建工具中,那将是一件好事。在分布式构建中需要做一些工作,但我认为这是可能的。我们已经有客户使用ec加速器和Xoreax Incredibuild来完成这类工作。你最终还是重建了这个世界,但你可以把它传播出去。我非常喜欢了解您的依赖关系图,并且只重建在组件级别更改的内容,但分布式make for.Net是存在的-它往往很昂贵。另一种选择是编写自定义工具,从项目文件中提取依赖关系信息,然后使用TeamCity的REST API更新构建配置: