I've finally tracked down an issue to bad code left in my ODX, presumably by Visual Studio
I had a Construct Message with a Transform and Message Assignment in it ...
Whenever I compiled, I was getting errors pointing at the assignment shape, and its usage of a distinguished promotion.
I edited the Message Assignment ... removed the line of code, applied change, pasted back the same line of code ... now solution compiles fine !!
I compared the ODX file, before and after, and spotted the original error message in the actual ODX ...
transform (msgToAudit.parameters) = FoToIaW.trnsFromFo_ToAuditParameters (msgFromFo);
#error "The expression that you have entered is not valid."
I didn't put it there, so I presume Visual Studio has added this to the ODX file ?
Also, is there anyway to "clean" the ODX of this sort of "injected" code, as the error occasionally reappears and I can't see the pattern that triggers it.
Agreed that this is a most frustrating bug (and here)
There is a hotfix for BTS 2009 - I'm not sure that this will help you in 2006R2 though.
Have you tried a clean and rebuild on the solution?