I know that when a web project references a class library project that VS 2005 automatically does not check that file into VSS. But when the web project references a DLL, it does check the DLL file in the bin directory into VSS. There has GOT to be a way around this. Here is my situation:
I have many web sites (over a dozen) that have the same functionality, but look very different from one another. The way I do this is to have one solution with all the business and data access logic in class libraries and then one project in that solution that is the "template" web site. It references everything as project references, and gets built at the same time as the business layer, etc.
Then I have a separate solution with the "customized" web sites in it. Each customized web site points to a reference path that contains all the DLLs from the first solution including the DLL from the "template" site. The ASP pages and the ASCX controls in the "customized" sites do not have code behinds. Their "inherits" parameter of the page or control tag inherits from a class in the DLL of the template site. So, there is no "code" or functionality in these customized sites, just the ASPX and ASCX files are changed to alter the layout and the "content". (Separation of content and logic is a good thing, right?)
But, with VS2005, each of these dozen or so sites checks in ALL of their DLLS every time you do a checkout/checkin. This is compounded by doing a share/branch in VSS to do work. So I have gone from having NO dlls in VSS and a complete source backup file of about 40MB to having hundreds of DLLS (all copies of the same 20 or so DLLs, mind you) and a VSS backup file of about 200MB, which is overloading my offline backup system.
So, how can I have a web project point to DLLS as references without checking in those DLLS to VSS? Everything I have read on the web about VS 2005 so far says it is not possible. I could move all the custom sites into the same solution as the business logic and the "template" site. But I need to keep them separate as they are different teams working then for one (Creative vs. engineering) also I just don't want so many web projects in my solution.
The best thing I can think of is to create a "dummy" class library project in my custom site solution. This class library would reference all the DLLs but ad no code of its own. All the custom web sites could reference this project as a project reference, thereby picking up all the DLLs but not checking them in because VS 2005 will detect that those DLLs come from a "project" reference. But that is a hack. Why did they add this "feature" to VS05? I have never checked in any DLL. It is bad for VSS (makes the DB huge) and bad for developers (getting a reference to a potentially old DLL from a source branch that was never deployed).
Please help, (sorry for the long message)
Thanks,
Jeff