All pastes #2048755 Raw Edit

Compile

public text v1 · immutable
#2048755 ·published 2011-04-20 20:15 UTC
rendered paste body
public static void runScript()
        {
            CSharpCodeProvider codeProvider = new CSharpCodeProvider();
            ICodeCompiler compiler = codeProvider.CreateCompiler();
            CompilerParameters parameters = new CompilerParameters();
            parameters.GenerateExecutable = false;
            parameters.GenerateInMemory = true;
            parameters.MainClass = "ScriptForms.ScriptFormMaster";
            parameters.IncludeDebugInformation = true;

            foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies())
            {
                parameters.ReferencedAssemblies.Add(asm.Location);
            }

            CompilerResults results = compiler.CompileAssemblyFromFileBatch(parameters, Codes.ToArray());

            if (results.Errors.Count > 0)
            {
                string errors = "Parser failed:\n";
                foreach (CompilerError err in results.Errors)
                {
                    errors += err.ToString() + "\n";
                }
                Log("There were Parsing errors", errors);
            }
            else
            {
                #region Executing generated executable
                // try to execute application

                try
                {
                    Assembly asm = results.CompiledAssembly;
                    MethodInfo method = asm.EntryPoint;
                    if (method != null)
                    {
                        Object memoryApp = asm.CreateInstance(method.Name);
                        method.Invoke(memoryApp, null);
                    }
                    else
                    {
                        Log("Runtime Error", "There was an runing the application from memory");
                    }
                }
                catch (Exception ex)
                {
                    Log("Could Not Load file", ex.Message);
                }

                #endregion

            }
        }