public CompilerResults CompileAssemblyFromFileBatch(CompilerParameters options, string[] fileNames)
{
string tempFile;
ArrayList classlessFiles = new ArrayList();
ArrayList files = new ArrayList();
int count = 0;
CCSharpParser ccs;
foreach (string file in fileNames)
{
ccs = new CCSharpParser(file);
if (!ccs.isClassless)
{
files.Add(file);
}
else
{
tempFile = ccs.ToTempFile(count > 0);
classlessFiles.Add(tempFile);
files.Add(tempFile);
}
count++;
}
Microsoft.CSharp.CSharpCodeProvider provider;
if (options.ToString() == "" || options == null)
{
return(new Microsoft.CSharp.CSharpCodeProvider().CreateCompiler().CompileAssemblyFromFileBatch(options, fileNames));
}
else
{
return(new Microsoft.CSharp.CSharpCodeProvider(new Dictionary <string, string>()
{
{ "CompilerVersion", options.ToString() }
}).CreateCompiler().CompileAssemblyFromFileBatch(options, fileNames));
}
CompilerResults retval;
retval = provider.CreateCompiler().CompileAssemblyFromFileBatch(options, (string[])files.ToArray(typeof(string)));
if (!retval.Errors.HasErrors)
{
foreach (string file in classlessFiles)
{
try
{
File.Delete(file);
}
catch {}
}
}
return(retval);
}