private static bool CompileMod(string modDir, BuildProperties properties)
{
CompilerParameters compileOptions = new CompilerParameters();
compileOptions.GenerateExecutable = false;
compileOptions.GenerateInMemory = false;
compileOptions.OutputAssembly = ModPath + Path.DirectorySeparatorChar + Path.GetFileName(modDir) + ".tmod";
foreach (string reference in buildReferences)
{
compileOptions.ReferencedAssemblies.Add(reference);
}
Directory.CreateDirectory(DllPath);
foreach (string reference in properties.dllReferences)
{
compileOptions.ReferencedAssemblies.Add(DllPath + Path.DirectorySeparatorChar + reference + ".dll");
}
foreach (string reference in properties.modReferences)
{
compileOptions.ReferencedAssemblies.Add(ModSourcePath + Path.DirectorySeparatorChar + reference + ".dll");
}
CodeDomProvider codeProvider = new CSharpCodeProvider();
CompilerResults results = codeProvider.CompileAssemblyFromFile(compileOptions, Directory.GetFiles(modDir, "*.cs", SearchOption.AllDirectories));
CompilerErrorCollection errors = results.Errors;
foreach (string reference in properties.modReferences)
{
File.Delete(ModSourcePath + Path.DirectorySeparatorChar + reference + ".dll");
}
if (errors.HasErrors)
{
ErrorLogger.LogCompileErrors(errors);
return(false);
}
return(true);
}