tfs 2017 构建多个解决方案依赖

tfs 2017 build multiple solutions dependency

如何为具有依赖性的多个解决方案创建构建定义?

这里的背景:

有两种解决方案

解决方案 A 是 class 库包含一个对象 class 'ClassA'

解决方案 B 是控制台程序,通过添加解决方案 A 生成的 dll 引用来使用 'ClassA'。

我想使用一个 TFS 2017 构建定义来构建这两个解决方案。

它引发错误:

   Main\Source\SolutionB\Program.cs (13, 13)
   Main\Source\SolutionB\SolutionB\Program.cs(13,13): Error CS0246:
   The type or namespace name 'SolutionA' could not be found (are you 
   missing a using directive or an assembly reference?)

如何配置 SolutionB 知道的构建定义以使用从 SolutionA 的构建生成的 dll?

您应该构建将在第二个项目中用作 dll 的第一个项目,而不是复制文件来构建工件;而不是将您的 dll 发布到您在第二个项目中引用的特定文件夹并最终构建您的第二个项目。

您可以通过类似的过程检查此图像,就在下图中,它正在将工件发布到三个不同的位置,在您的情况下,它应该是一个发布任务。

这是一种简单的方法;但如果您也将项目 A 用于其他一些项目,则可能需要使用 NuGet 包。我将把它描述为解决方案 2。

解决方案 2: 你应该 create a Nuget packages by the artifacts of Project A. You can host your Nuget packages in custom source folder. Add your first project's package to your project as a reference. You don't need to do something extra just add a nuget restore task to your build definition. If you want, you can publish your first project as a nuget package during the build definiton. Please check how to restore and install neuget packages by build definiton