I am using Dotfuscator CE with VS2012, the input assemblies contain 3 exe's with many dll's. Each of the exe's reference one of the dll's, but after obfuscation one of the exe's is still calling the un-obfuscated class & method name in the dll, so it fails. Yet the other 2 exe are correctly calling the renamed version of the class & method. None of the input assemblies are configured for library mode as it is not required for anyone to access any of these dll's afterwards.
After some experimentation, it seems that the original build order of the assemblies seems to affect the outcome. i.e. if I rebuild the failing exe after the other 2 exe's, it seems that Dotfuscator gets it right if I run it again!
Why would it matter what order the exe's are built in? None are set to reference specific versions of the common dll.
A B C = exe / D = dll
A B C reference D
Rebuild A B C, then run Dotfuscator, A fails to reference D (A calls original class & method names in D)
Rebuild A only, then run Dotfuscator, A now references D correctly, all is correct.