The post title seems intuitive, but I do this to myself roughly twice a year. The name of my BizTalk project will contain some sort of reserved word, and it causes me to waste all
sorts of time figuring out why BizTalk persecutes me so. Since this recent occurrence wasn't aided by any search engine results, I figured I'd contribute to them
for the next idiot.
This time, I had named my project "Microsoft.Demo.ZZZZ.BTS" and it had an orchestration in there. I'm reading out context values, so I have an expression
shape looking at "BTS.MessageID". Well, whenever I'd try to compile, I'd get Type or namespace name "MessageID" not found in assembly XYZ". After a few
minutes of brain cramping, I realized that since my default assembly namespace had the ".BTS" in it, the compiler couldn't resolve the MessageID context
property. So dumb of me. Once I changed my project/assembly/namespace name, everything worked fine. Moral of story, if you use namespace-style project naming like I do, make sure no parts of said name include words that will
trip up the BizTalk compilation.