Para utilizar algun "Dotfuscator" ya sea libre o de pago, primero hay que ir probando con cada avance del proyecto, depende mucho del tipo de proyecto, en varias pruebas que hice como ejemplo:
using Microsoft.Office.Interop.Word;
using System.Runtime.InteropServices;
y algunas mas cuando el nivel de complejidad era medio, al usar algun "Dotfuscator" el *.exe quedaba inservible, es decir no se llegaba a cargar y simplemente daba un error.
Respecto a los compresores, la mayoria que funcionan con proyectos .NET tienen problemas (en Windows 7 y algunos casos en WinXP) con:
folderBrowserDialog
DragDrop
[STAThread]
Si es un proyecto grande, hay que ir acomodando el diseño respecto al compresor o el "Dotfuscator", para evitarse problemas al final, que diagnosticarlos luego de terminado el proyecto si es una...
Si el proyecto es pequeño, no creo que haya problemas, pero como dije es mejor probar con cada avance del proyecto.
Por mi parte recomendaria utilizar un compresor, puesto que los "Dotfuscator" son muy sencillos de revertir y existen muchas herramientas ya hechas, y de todos modos no sirven de mucho cuando desensamblas el *.exe, al contrario de los compresores que pueden lograr un poco de confusión respecto a si es un proyecto hecho en .NET.
1) Una aplicación que genere un archivo cifrado a apartir de uno o más ensamblados.
2) Esa aplicación generada (Llamémosla launcher) tiene que ser capaz de leer el archivo, descomprimirlo/descifrarlo usando el mismo algoritmo y luego cargarlo en memoria y ejecutar el EntryPoint por reflection.
Al descompilar el code se puede ver todo eso y modificarlo directamente, al descomprimirlo se puede copiar el archivo descifrado
fileSystemWatcher
Es lo malo de .NET y tb de JAVA, que es sencillo relativamente obtener el codigo fuente.
Algo interesante es que los descompiladores para .NET no pueden leer ciertos bucles combinados con el manejo de API's de Windows.
Bueno como dije antes, en mi opinion es mejor utilizar un compresor y acomodar el proyecto a las limitaciones que tenga por el uso de dicho compresor.