Some exes/dlls cannot be opened in Reflector becuase they are not managed and are probably produced by compilers like vb6 or Delphi, etc.
However, compilers like C#, VB.Net produce managed assemblies which can be fully viewed by tools like Reflector. To prevent this, you will need to obfuscate your assemblies using an obfuscator such a
Crypto Obfuscator. Before you deploy or distribute your software, simply obfuscate all your exe/dlls.