Hi there,
I'm currently in the process of researching the best development and deployment practices for our team. We have a load of similar code that we're going to start importing into a library of shared assemblies for use across our suite of (web & win) applications. I'm starting to get a clear idea of where I think we should be heading. I'll no doubt have more questions as this refining process progresses.
I'm drawn to the elegance of the structure laid out in W Craig Trader's answer to this question. We're using TFS rather than SVN but the approach applies just as well. Using this approach each dev will have a local workspace containing the latest shared assembly for each major version. Each of these assemblies will be exactly those to be deployed in the target host's GAC.
Each member of the dev team is free to layout their machine as they feel most comfortable so the directory containing the assemblies to link to during development could easily change from dev to dev. We don't want to store the assemblies in the GAC of the devs' machines. And don't want each dev to have to update the references each time they check a project out or in.
So my question is: is there a way to configure a folder to act like a system-wide assembly store a la GAC? Or is there a way to configure VS2008 to search for assemblies in a particular location?
Going forward we'll configure automated builds/CI, in which case we can fix these things, but in the interim the builds will take place on an individual dev's machine. But even with server-based builds, each dev will want to reference the correct assembly for intellisense and test builds.
Any thoughts or suggestions welcome.
Thanks, Dan
Following some internal discussion is seems we may settle on a fixed location on each Dev's machine. This still doesn't sit well from a personal work space p-o-v but it's the safest approach.
The alternative is write a client side TFS event listener which can augment a project file on check-out and sanitize it on check-in. But I'm not sure how safe that would be.
Cheers, Dan