CodeDOM Compiler

using Microsoft.CSharp;
using System.CodeDom.Compiler;
...

CSharpCodeProvider provider = new CSharpCodeProvider();
CompilerParameters cp = new CompilerParameters();

cp.ReferencedAssemblies.Add("System.dll");
cp.ReferencedAssemblies.Add("System.Windows.Forms.dll");
cp.ReferencedAssemblies.Add("System.Data.dll");
cp.ReferencedAssemblies.Add("System.Drawing.dll");
cp.ReferencedAssemblies.Add("System.Management.dll");
cp.ReferencedAssemblies.Add("System.Deployment.dll");
cp.ReferencedAssemblies.Add("System.Xml.dll");
cp.ReferencedAssemblies.Add(typeof(System.Linq.IQueryable).Assembly.Location);

cp.CompilerOptions = "/filealign:0x00000200 /optimize+ /platform:anycpu /debug- /target:winexe /win32icon:icon_path";

cp.GenerateExecutable = true;
cp.OutputAssembly = saveFileDialog1.FileName;
cp.GenerateInMemory = false;
CompilerResults cr = provider.CompileAssemblyFromSource(cp, source);

if (cr.Errors.Count > 0)
MessageBox.Show("Error building!");
else MessageBox.Show("Building successfully!");

0 comments: