using System;
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
using System.Text;
using System.IO;
using System.Reflection;
namespace CompiledDll
{
/** <summary>
/// Summary description for Class1.
/// </summary>
public class CompiledDll
{
public CompiledDll(){}
public string OutFileName;
public bool Complie(string fileName)
{
ICodeCompiler comp = (new CSharpCodeProvider().CreateCompiler());
CompilerParameters cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("system.dll");
cp.ReferencedAssemblies.Add("system.data.dll");
cp.ReferencedAssemblies.Add("system.xml.dll");
cp.ReferencedAssemblies.Add("system.windows.forms.dll");
//cp.ReferencedAssemblies.Add(@"D:ProjectsVS2003TestBusinessDll.dll");
cp.GenerateExecutable = false;
cp.GenerateInMemory = false;
cp.OutputAssembly=OutFileName;
StreamReader file=File.OpenText(@fileName);
string Code=file.ReadToEnd();
file.Close();
CompilerResults cr = comp.CompileAssemblyFromSource(cp,Code);
if (cr.Errors.HasErrors)
{
StringBuilder error = new StringBuilder();
error.Append("Error Compiling Expression: ");
foreach (CompilerError err in cr.Errors)
{
error.AppendFormat("{0} ", err.ErrorText);
}
throw new Exception("Error Compiling Expression: " + error.ToString());
}
else
{
return true;
}
}
}
}