CompilerResults Compile(MigrationContext context, CodeCompileUnit dom)
{
CompilerParameters parameters = new CompilerParameters();
parameters.GenerateInMemory = true;
parameters.ReferencedAssemblies.Add(GetType().Assembly.Location);
parameters.ReferencedAssemblies.Add(context.TargetAssembly.Location);
if (_references.Length > 0)
{
foreach (string reference in _references.Split(';'))
{
string assemblyName = reference.Trim();
parameters.ReferencedAssemblies.Add(Assembly.Load(assemblyName).Location);
}
}
CodeDomProvider provider = new Microsoft.CSharp.CSharpCodeProvider();
ICodeCompiler compiler = provider.CreateCompiler();
return compiler.CompileAssemblyFromDom(parameters, dom);
}