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