How do I manage dependencies for automated builds on my build server?
.net, build, continuous-integration, dependency-management, msbuild
Solution
I like stmax's solution, but it may be a little too much work for you at this point.
The simplest thing to do is to create a lib directory in your repository and add all third-party assemblies to that directory. Update all your projects to reference third-party assemblies from this lib directory. Check everything in. When the build server wakes up to do the next build, it will pull the latest changes, which will include the new lib directory and the project reference changes. Green build!
Problem
I'm trying to implement continuous integration into our day to day workings. In our team, we're moving from just building our code in Visual Studio on our workstations and deploying, to using MSBuild.exe and automating on our build server (which is Jenkins) without the use of Visual Studio. We have external dependencies to references such as Automap in our projects. Because the automap (for example) dll isn't on the build server, the msbuild execution fails, for obvious reasons. There are other dll's which I need to be part of the build, I'm just using automap as an example. So what's the best way to get any dependencies onto the build server as part of the automated build? I've seen references to using a 'lib' folder, but I don't really understand where I should be putting it (in my project, filesystem, SVN ...?), and how the build server will get to it. I've also read that NuGet can do something with dependencies, but my build server isn't connected to the internet, and I don't understand how I can get my build to pull a NuGet package I may have created, and how it works together. Edit: I'm using subversion and we cannot use TeamCity as we would have to buy it and there's zero chance of funding.