In my program, it is important that obfuscated names be the same after each build, so that I can find differences in files for minimum upgrade size, otherwise users will have to download all dlls again for even every small upgrade. Is there an obfuscator out there that obfuscates each dll with the same result each time?
My company's Thicket C# and VB.net obfuscators will generate new random names if you obfuscate everthing at once. If you obfuscate incrementally, then there isn't any choice, you have to preserve the obfuscation of already-obfuscated symbols. Our tools do that.
By using Skater .NET Obfuscator you may obfuscate all your project's dlls and then merge/combine them into a single dll that will be distributed. Users will download only one dll for every small upgrade.