tfs 2017 build multiple solutions dependency

1.1k views Asked by At

How to create build definition for multiple solutions that have dependency?

Background here:

There are two solutions

Solution A is class library contains an object class 'ClassA'

Solution B is console program that use 'ClassA' by add dll reference generated by solution A.

I would like to server build both solutions using one TFS 2017 build definition.

It raise out error:

   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?)

How to config the build definition that SolutionB would know to use the dll generated from the build of SolutionA?

1

There are 1 answers

2
nzrytmn On BEST ANSWER

You should build your first project that will be used at second project as dll and than copy files to build artifacts; than publish your dlls to specific folder that you referenced in your second project and finally build your second project.

You can check this image that with similiar process, just in below image it is publishing artifacts to three diffrent location, in your case it should be one publish task. enter image description here

This is one of the simple way; but if you use the project A for some other projects too you may want to use NuGet packages. I am going to describe this as solution 2.

Solution 2: You should 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.