http://donkeysharp.blogspot.com/2011/04/creando-un-compilador-de-batchs.html
Codigo fuente:
http://cid-a9fbcf65213bf348.office.live.com/self.aspx/.Public/%5BSOURCE%5D%20-%20BatCompiler.zip
Para hacer esto me base en otra entrada en la que utilizo los servicios de compilacion de .NET y con un poco de creatividad me salio el de batchs.
Para compilar codigo C# simplemente se sigue mas o menos la logica de este metodo:
Código
public static StringBuilder CompileFromSourceCode(string outputName, string sourceCode, bool generateExecutable) { StringBuilder errores = null; /* Creamos un proveedor de codigo con el cual * podemos realizar distintas operaciones sobre * algun codigo C-Sharp, una de estas tareas es * la de compilar ensamblados. */ /* Para este ejemplo se usa el metodo para compilar * desde algun código. * # provider.CompileAssemblyFromSource(...) */ // Para eso necesitamos algunos parametros de compilacion // Decimos que el ensamblado sera ejecutable // caso contrario seria una DLL parameters.GenerateExecutable = generateExecutable; /* Ahora necesitamos adicionar un ensamblado * como es un ejemplo basico solo utilizaremos * el assembly System.dll */ parameters.ReferencedAssemblies.Add("System.dll"); // Establecemos el nombre del ensamblado de salida parameters.OutputAssembly = outputName; // Compilamos el codigo fuente CompilerResults results = provider.CompileAssemblyFromSource(parameters, sourceCode); // En el caso de que existan errores los mostramos // caso contrario el ensamblado ha sido construido if (results.Errors.Count > 0) { foreach (CompilerError error in results.Errors) { errores.AppendLine(string.Format("Error en linea: {0}", error.Line)); errores.AppendLine("\t" + error.ErrorText); } } return errores; }
Espero les sea util
Saludos