So we had a Sql Server Integration Services project that wasn't really being used currently, so one of our guys removed the project from our VS2008 solution file and checked it in. Worked fine on his machine - heck, it worked on all our machines.
The build server? Not so much. Immediate barfing with the cryptic message of "MSBUILD : error MSB1025: An internal failure occurred while running MSBuild
". CruiseControl looked at it, sighed, and buckled to its knees under the weight of the aborting MSBuild process.
So what went wrong? Looking at the diff of the solution file, all that had happened was these two lines were removed:
Project("{D183A3D8-5FD8-494B-B014-37F57B35E655}") = "DTS", "DTS\DTS.dtproj", "{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}"
EndProject
Reading up on MSB1025 and seeing that people had fixed it by rebuilding their solution files from scratch, I figured it just had to be a badly configured solution file, and that VS2008's handling of dtproj files was sloppy.
I did a search for the project's GUID (the second guid listed there - 947C2F56-A7A8-4357-8E42-6A234C1CCCB6) and sure enough, there were some references to it left in the solution file.
One project had:
ProjectSection(ProjectDependencies) = postProject
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6} = {947C2F56-A7A8-4357-8E42-6A234C1CCCB6}
EndProjectSection
so I removed that entire section, and of course under the GlobalSection that stores the build configuration settings there was a whole whack of:
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Debug|Any CPU.ActiveCfg = Debug
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Debug|Mixed Platforms.ActiveCfg = Debug
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Debug|x86.ActiveCfg = Debug
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Development (Debug)|Any CPU.ActiveCfg = Debug
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Development (Debug)|Mixed Platforms.ActiveCfg = Debug
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Development (Debug)|x86.ActiveCfg = Debug
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Development (Release)|Any CPU.ActiveCfg = Release
{947C2F56-A7A8-4357-8E42-6A234C1CCCB6}.Development (Release)|Mixed Platforms.ActiveCfg = Release
...
...
...
so I removed every offending line. Saved it, handed it back to the build server, and all was good.