2017-09-01 141 views
0

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

背景这里:

有两个解决方案

溶液A是类库包含一个对象类“ClassA的”

溶液B是通过产生附加dll引用使用“ClassA的”控制台程序通过解决方案A.

我想服务器使用一个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?

回答

-1

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

您可以检查这个形象,有着相近的过程,只是在下面的图像是假象发布到三个不同势的位置,你的情况应该发布一个任务。 enter image description here

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

解决方案2:你应该create a Nuget packages通过项目A的文物才能在自源文件夹host your Nuget packages。将您的第一个项目包添加到您的项目中作为参考。你不需要做额外的事情,只需将一个nuget恢复任务添加到你的构建定义。如果你愿意,你可以在构建定义期间将你的第一个项目作为nuget包发布。请检查how to restore and install neuget packages by build definiton

+0

感谢,修改构建设置后,它的工作原理 – mintssoul

+0

什么你所描述的是一个可怕的做法。二进制依赖关系应该作为NuGet包进行管理。 –

+0

@DanielMann这是简单的方式来解决这个问题的一种,它似乎是工作,我persperctive一个坏的解决方案,工作总比没有好;另一方面是的,你是正确的管理nuget包是更好的。我将编辑我的答案并添加此解决方案。谢谢。 – nzrytmn

相关问题