2008-11-14 21 views

Respuesta

10

Para compilar un archivo sobre la marcha que tendrá que hacer algo en este sentido (en los que el código fuente es una cadena containg el código para compilar):

CodeDomProvider codeProvider = new CSharpCodeProvider(); 
ICodeCompiler compiler = codeProvider.CreateCompiler(); 

// add compiler parameters 
CompilerParameters compilerParams = new CompilerParameters(); 
compilerParams.CompilerOptions = "/target:library /optimize"; 
compilerParams.GenerateExecutable = false; 
compilerParams.GenerateInMemory = true;   
compilerParams.IncludeDebugInformation = false; 
compilerParams.ReferencedAssemblies.Add("mscorlib.dll"); 
compilerParams.ReferencedAssemblies.Add("System.dll"); 

// compile the code 
CompilerResults results = compiler.CompileAssemblyFromSource(compilerParams, sourceCode); 
4

Puede compilarlo razonablemente fácilmente usando el CSharpCodeProvider. Puede descargar el código fuente de mi compilador de fragmentos, Snippy, del C# in Depth web site. Utiliza CSharpCodeProvider, por lo que podría usarlo como código de muestra.

Cuestiones relacionadas