internal static bool CompileCode(CodeDomProvider provider, Assembly userAssembly, string[] generatedSrcFiles)
{
// Parameters for compilation
String[] referenceAssemblies = {
"System.dll",
"System.ServiceModel.dll",
"System.Configuration.dll",
userAssembly.Location
};
string compiledFile = "temp.dll";
CompilerParameters cp = new CompilerParameters(referenceAssemblies, compiledFile, false);
cp.GenerateExecutable = false;
Console.WriteLine("Compiling files: ");
foreach (string fileName in generatedSrcFiles)
{
Console.WriteLine(fileName);
}
CompilerResults cr = provider.CompileAssemblyFromFile(cp, generatedSrcFiles);
if (cr.Errors.Count > 0)
{
Console.WriteLine("Please investigate. The tool encountered errors during compilation");
foreach (CompilerError ce in cr.Errors)
Console.WriteLine(ce.ToString());
return false;
}
else
{
Console.WriteLine("No errors encountered during compilation");
File.Delete(compiledFile);
}
return true;
}