While msbuild is powerful, I strongly believe it should have been a standard C# language build system instead of a XML-based one.
Any non-trivial thing to do is a pain to figure out if the documentation is not extensive enough.
I really love C#, but msbuild is one of the weak links to me, almost everything else is a joy to use.