Ah, the joys of the mighty incomparable Visual Source Safe. In combination with VS2003 Web Projects and IIS it can send any developer over the edge of Mount Doom. It wields more power and more malice than Sauron himself.

Sometime ago we had so many problems with VSS and web projects we were actively considering moving to Subversion  (this is at my client site, in my own company we saw the light long ago and moved out of VSS to CVS and now SubVersion, but thats another story). Im keen on using TFS but thats in an evaluation phase now and since we are still working on a .NET 1.1 project (with Biztalk04) we had to make do with VSS. Just when we were about to setup the SVN repository some of the folk on the team felt comfortable that we had found a workaround with VSS web projects and so we dropped the move. Bad mistake. Now we are sort of nearing the end of the current phase of the project and were working on the build scripts. We are not yet into the CI world, its still in the automated build stage (or actually, the half automated build stage because of the aforementioned glorious product). The scripts reported some build failure in one application so  we happily opened VS to check it. Boom.. first error. VSS doesnt like you opening solutions directly like that. It has to be done through the “Open From Source Control” mechanism. This messed up the solution for a bit but we eventually  got a few projects open and corrected some of the issues. For instance I couldnt keep my solution files in their own folder because there was a MSI project in the set and it complained that the MSI project was in a different part of the structure from the solution, so i had to recreate the entire source tree for that section. Thank goodness for the GDN SourceSafeBindingRemover app. It let us make several passes at re-setting up the tree.

Set the build up again and yet another crash. This time, no matter how we tried to open the solution, IIS wouldnt let us. It just kept throwing vague errors about being unable to find the csproj file. We tried for 4 hours (including reinstalling IIS) but no luck. So finally we gave up and for that one project we put in a file copy task to get the code from a file system backup. It was rather sad and we didnt wanna do that, but there was no way to get beyond this error. The build scripts are back on track and we’ll keep them that way till we can move to TFS or maybe back to SVN. Anything to get away from this monster.

One thing i hate most about VSS is the way its a sort of control freak. As long as you let it dictate the place you store your web app files (and keep them in wwwroot, away from the rest of your code base) and let VS create the solution folders in whatever way it knows best, its all fine. The moment you try to create a disciplined source tree and keep your web projects together with the rest of the code, thats the start of all suffering. I used SVN in a previous project and never heard a murmur from the system. It just worked!! In the old days, when i started out, (in 1996) we used VC 1.52c and VB4 and VSS was fine for all that (with small teams of course), but when web apps came out, they should have done some thorough revisions, especially when you have seriously good open source competition. Its amazing that after so many years, MS still hasnt managed to get VSS to work decently with web projects. And now, the only MS option is the costly TFS. Just google for VSS and web apps problems and you’ll probably get a million results. I nearly laughed out loud when i saw one of the results was an old teched hands on lab for setting up a “builld lab” with VSS and VS2003!!

yeah, i know, someone is going to reply saying RTFM, theres a way to work with web projects, there are workarounds and all that. I’ve heard it all before. There is just no reliability with it. An automated build should at least let you sleep easier at night not keep you awake fretting about what new horrors the results of the build will reveal and what new workarounds you should find.

VSS RIP can never come too soon for me. !