For the last couple of weeks, I have been developing a cool ASP.Net app that allows customer administrators to make requests for users to be added to Active Directory and given access to their instances of online products. This has all been working great, until yesterday.
This solution, which is stored in ClearCase, has a lot of projects in it and I wanted to get some good naming of namespaces. I also changed the names of the projects to represent their namespaces. This worked well for all of last week with only problem being a few instances of locked files in VSWebCache, but another rebuild tended to get rid of those.
Yesterday morning, I installed Whidbey Beta 2 to have a bit of a play. At the same time, a colleague made some changes to the ClearCase configuration for the solution. Take Thy Gun.......
All hell starts to break loose. Each time I start the web project, the objects in the ASP.Net assembly can't be found. Is it ClearCase or Beta 2 at fault????
After pulling my hair out for the 1093850923842314th time ( And Shoot Thy Foot........Repeatedly), I hadn't gotten anywhere. I built the solution several times on multiple machines (with and without Beta 2), using several ClearCase views and differing combinations of everything under the sun. There was no consistency as to whether the web project would run or not.
I finally discovered that as soon as I referenced a project (which was under ClearCase) to my blank test ASP.Net project (which wasn't under ClearCase), I found that it didn't find the web projects objects and the VSWebCache locking compile errors started again. I removed the ClearCase related projects from the web project and the web project would then work again. This would indicate that ClearCase is the problem. ......Repeatedly.
In the end, it wasn't ClearCase and it wasn't Beta 2 being installed. It turns out that the ASP.Net project got an upset stomach when the namespace was changed from NiceName to PrefixName.NiceName. I don't know if it didn't like multiple names in the namespace or if it threw wobblies because there was a . character in the namespace.
Needless to say, I have had a very productive two days. The gun is back in the holster, ready for another day.