Another problem related to using VS in order to develop VS happens in the area of unit testing. The problem here is that my team would like to write tests for the C# language service in C#, unfortunately, this means that our dogfood IDE has the release version of the language service already loaded. Due to the way DLL loading works in windows, you can only have a DLL loaded with a given name, which means that the Unit Test framework is unable to load the debug copy of the language service that we just built. On our team, we work around that by building two versions of all of our assemblies, which are identical except for their names. That way we’re able to load a unit-test specific version.
Unfortunately, this has other drawbacks. For example, it makes it impossible to combine code coverage results from unit tests, with the results from integration tests, since they are for different binaries.