Interesting, our dev team was talking about this issue just today.
In our team we check in any 3rd party assemblies into a folder like
you've done. If an assembly is downloadable in source form we do a
compilation and then the source goes with the pre-built assembly and
generally works pretty well.
One of the other devs mentioned difficulty with the DevExpress
components not installed on the build server and causing issues with
building if the bundle wasn't installed there. We should probably talk
to the vendor, but it was quicker to just perform the install even if it
feels dirty to make a dependency on any part of machine config other
than vanilla Visual Studio.
I'm interested if anyone has solved this issue as well!
Tony
On 8/02/2011 2:09 PM, David Burela wrote:
For the last few years I've used a fairly standard way of handling 3rd
party assemblies.
In source control, I create a folder called "3rd Party Assemblies"
which is where I put all the external references (like nSubstitues,
Ninject, etc.).
/DavidSolution
DavidSolution.sln
/3rdPartyAssemblies
/nSubstitue
/Ninject
/...
/Project1
/Project 2
/...
It works well, learnt it from Mitch years ago. However something that
has always tripped me up, is how do you handle assembiles that are
installed on the computer?
Here I am thinking of *Telerik, Component art, DevExpress,* and most
other purchased libraries.
At the moment I am using Telerik, you need to install it onto your
machine and it puts the license file somewhere.
We have a number of devs working on the same project, so we all
install the tools on.
Now when it comes to building, i'll need to install the tools into the
build server. Whenever a new version comes out, i'll need to get
everyone to update the computers and if they forget, then people are
out of sync, or they could be working on 3 different projects and
their other projects may not be upgraded yet.
If I copy all the Telerik controls that I need into the 3rd Party
Assembly folder, then when I upgrade my version of Telerik I can just
copy the new .dlls into the 3rd party assembly folder, and all other
devs will automatically pull down those .dlls with a get latest. and
hopefully the build server will work with them just in the 3rd party
assembly folder, but there might be a license issue?
Putting the .dlls into the 3rd party assembiles folder seems like a
good idea to make sure that the project is on a specific version of
the tools. BUT then you lose some other features like having Telerik
automatic migration your solution references to the latest version of
the assemblies.
*So to sum up my question:*
With the libraries that you need to install (Telerik, Component Art,
DevExpress). How do you guys handle the assembly references? Include
in source control, install the framework on EVERY computer? or some
other solution?
-David Burela