I'm compiling the C# code written by end-user dynamically in my software. In order to compile the code I need to add some assemblies as reference to CompilerParameters.
CompilerParameters loParameters = new CompilerParameters();
loParameters.ReferencedAssemblies.Add("C:\A.dll")
loParameters.ReferencedAssemblies.Add("C:\B.dll")
Therefore I should release these assemblies ("A.dll" and "B.dll") with my software, but because of security reason I don't want the user can access the source of these assemblies by reverse engineering.
Note 1: I can remove the implementation of methods in required assemblies (A and B) but my assemblies are very large and I can't do it manually.
Note 2: I know about obfuscation but I don't want to use that.
Note 3: I just need to compile the code successfully and I don't want to run it.