NuGet isn't just a means of acquiring and sharing libraries externally. It's a great way to distribute your shared libraries internally within and across your development team(s). There’s no need to checkout updated copies of a shared library and build it on a developers machine and re-reference it within Visual Studio. I’ll show you how to setup TeamCity as a NuGet server to make sharing dependencies a little easier.
Setting up TeamCity
It’s extremely simple to enable TeamCity to act as a NuGet Server.
Go to the Administration section and select “NuGet Settings” and enable the NuGet server.

You will see that TeamCity has it’s own WCF service URL called the “Authenticated Feed URL”. This is what we will use to tell Visual Studio where to look for our NuGet feed (more on this later).
Configure your build to produce a NuGet package
If your project configuration in TeamCity doesn’t already have a build that compiles your project you will need to do this first. In this example I’ll simply use the built in Visual Studio build runner type that uses MSBuild to compile a solution.

Once you have a compiled binary you can use TeamCity’s built in NuGet Pack runner to ouput a .nupkg (NuGet package) of your compiled library. TeamCity will ask for a Specification file and this is usually a .nuspec file that you add to your project that details detailed information about the package. However, you can also simply use the .csproj file to provide this information.

The two build configurations are shown below:

Configure Visual Studio to use TeamCity NuGet server
Firstly open up Visual Studio and open up the NuGet Package Manager. At the bottom left selection “Settings…”.
![clip_image002[6] clip_image002[6]](http://www.ryantomlinson.com/image.axd?picture=clip_image002%5B6%5D.jpg)
In the “Package Sources” dialog add a new source and specify the source as the TeamCity feed URL that I mentioned earlier.
![clip_image002[8] clip_image002[8]](http://www.ryantomlinson.com/image.axd?picture=clip_image002%5B8%5D.jpg)
Now when you go back to manage NuGet packages you will have the new package source as an option.

Now when your team updates a shared dependency it will be built by TeamCity on checkin and a NuGet package is produced and it will be updatable from within Visual Studio using the package manager.