public static Assembly CompileScriptFromSource(string source, CodeDomProvider provider, ref string errors)
{
StringBuilder errorLog = new StringBuilder();
errors = "";
CompilerParameters compilerParameters = new CompilerParameters();
compilerParameters.GenerateExecutable = false;
compilerParameters.GenerateInMemory = true;
compilerParameters.IncludeDebugInformation = false;
compilerParameters.ReferencedAssemblies.Add("System.dll");
compilerParameters.ReferencedAssemblies.Add("System.Windows.Forms.dll");
compilerParameters.ReferencedAssemblies.Add("KedrahCore.dll");
compilerParameters.ReferencedAssemblies.Add("TibiaAPI.dll");
compilerParameters.ReferencedAssemblies.Add(System.Reflection.Assembly.GetExecutingAssembly().Location);
CompilerResults results = provider.CompileAssemblyFromSource(compilerParameters, source);
if (!results.Errors.HasErrors)
{
return results.CompiledAssembly;
}
else
{
foreach (CompilerError error in results.Errors)
{
errorLog.AppendLine(error.ErrorText);
}
}
errors = errorLog.ToString();
return null;
}