Compile assembly in runtime and save dll in a folder

.net-assembly, c#, compilation, runtime

Solution

You could use the `OutputAssembly` property of `CompilerParameters` to sets the name (path) of the output assembly. From your example:

...
CompilerParameters compilerparams = new CompilerParameters();
compilerparams.GenerateInMemory = false;

compilerparams.OutputAssembly = "OutputAssembly.dll";

CompilerResults results = compiler.CompileAssemblyFromSource(compilerparams, code);
...

Problem

This is my code: ``` Microsoft.CSharp.CSharpCodeProvider provider = new CSharpCodeProvider(); ICodeCompiler compiler = provider.CreateCompiler(); CompilerParameters compilerparams = new CompilerParameters(); compilerparams.GenerateInMemory = false; CompilerResults results = compiler.CompileAssemblyFromSource(compilerparams, code); if (results.Errors.HasErrors) { StringBuilder errors = new StringBuilder("Compiler Errors :\r\n"); foreach (CompilerError error in results.Errors ) { errors.AppendFormat("Line {0},{1}\t: {2}\n", error.Line, error.Column, error.ErrorText); } throw new Exception(errors.ToString()); } else { return results.CompiledAssembly; } ``` How do I save the created dll to my own specific folder? When I debug, somehow the assembly location is at 'AppData/Local/Temp/' folder.

Original source