The problem with Dotfuscator CE
Dotfuscator CE works okay for simple code but add something more complex, like for example your own generic classes, and it fails.
I tried Dotfuscator CE on a solution consisting of six assemblies. One of the main assemblies used a generic base class for the business objects. Dotfuscator ran with no errors reported, but when I tried to run the code I immediately got exceptions.
I traced them down to my custom generic classes. Because the CE version of Dotfuscator allows you no fine tuning then you are left with an “all or nothing” proposition. If the offending assembly won’t run when obfuscated then your only choice is to not obfuscate it. This was not acceptable for my project, so I had to find an alternative.
I settled on Phoenix Protector, a freeware application that lets you fine tune your obfuscation and has a command line that actually works. It’s not going to be my long-term solution, but it is sufficient for the moment.