How to handle shared library in TFS and share dlls

I have 2 different applications configured in tfs source control. Both have a common library, also installed in the source control.

The current process of changes in the shared library is to create it, copy it by dll to another location for other applications that you can work with. This guide does not work well, especially now, when I switch to TFS CI Builds.

A layout similar to this in TFS:

-TFS - Web 1 | Main | RB_1_0 - Web 2 | Main | RB_1_0 - Shared | Main | RB_1_0 | RB_2_0 | RB_3_0 

So, I want to change this, automate it. But I don’t know how I can do this. As you can see, there are several branches, etc. Like its general library, which I was considering, to configure how I work with nuget packages, where the changes are transferred to my network 1 and / or web 2. I am not sure how simple it is to install this.

Is it possible to look at the above structure and give an opinion on the best way to control the distribution of the derived dll from the general? In a CI environment? Is Nuget the best option?

+7
source share
1 answer

NuGet is what I use for this.

Modify the build process to create new packages for the general package

Add an operation to create a nuget package , and another copy it to a network share used as a NuGet repository. There are several projects floating around, for example Tfs NuGetter , which can be used instead of manually editing the assembly template.

If you do not want to modify the assembly template, you can use a tool such as [tfs deployer] and write your own deployment script that creates NuGet packages instead. Or write something that catches the build event.

Enable package recovery during assembly for all solutions

This means that you do not need to store packages in the original control or deal with packages that do not load when the solution was last updated.

If you want to update the dependency version, open the solution and update it like any regular NuGet package.

+9
source

All Articles