.net - 如何在 TeamCity 中构建多个依赖的 .NET 解决方案?

标签 .net build continuous-integration teamcity projects-and-solutions

我们有一个应用程序,其组件是在多个 Visual Studio 解决方案 (.sln) 中开发的。有时会添加或删除解决方案。构建输出(例如 DLL)将复制到共享文件夹中。其他解决方案的项目引用这些 DLL。下面是一个简化的示例:解决方案 A 和 B 各包含两个项目。方案B的项目B2引用了方案A的项目A2。

enter image description here

旁注:我们正在用 NuGet 包替换共享驱动器;但是,以下问题仍然很明显。

TeamCity 支持构建依赖项。这个video演示如何手动设置。

但是,我们希望 TeamCity 自动(!!)解决项目之间的依赖关系。因此,在上面的示例中,我们希望 TeamCity 首先构建解决方案 A,然后构建解决方案 B。我们如何配置 TeamCity 自动获取这些依赖项,而无需手动维护它们?

最佳答案

不幸的是它不能自动。您可以考虑编写自己的插件。

您通常会设置快照依赖项,在示例 B 构建中将具有对 A 构建的快照依赖项。

如果您已转移到 NuGet,它将恢复解决方案引用的任何内容。您可能想要像上面那样具有快照依赖关系,但不是必需的,每个解决方案将确定它需要什么。

更新 1 - 自动化

我认为你应该能够使用 Rest API 来做到这一点,文档不是很清楚,但我确实找到了这个 gist其中有一个添加和删除快照的示例。

您可能需要制定一些项目设置的约定,以便更轻松地匹配项目。

您还应该查看 plugins page用于抽象 API 的库。

关于.net - 如何在 TeamCity 中构建多个依赖的 .NET 解决方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29266631/

相关文章:

c# - 有什么方法可以让代码契约与 LINQ 一起工作吗?

Android,在构建时更改包名称和 Assets

Java、Gradle、CI 和指定内存使用限制

continuous-integration - 用于持续集成服务器的TeamCity与FinalBuilder Pro

.net - 当使用flag(Enum)时,限制为64。达到限制时,还有什么选择?

c# - 首次创建序列化类时的默认条目

c# - 插入网线/连接 Wifi 时收到通知

android - Java Eclipse 自动构建工作区不会停止?

ios - 我的应用程序构建的旧版本而不是最新的 react native ios 构建

continuous-integration - ReSharper 能否配置为持续执行解决方案范围的代码检查?如果没有,如何解决?