All pastes #183997 Raw Edit

Unnamed

public text v1 · immutable
#183997 ·published 2006-09-27 13:21 UTC
rendered paste body
protected void compileSource(string fileName, out string strOutput, out string strErrors, out int intWarnings, out int intErrors)
    {
        strErrors = "";
        strOutput = "";
        intErrors = 0;
        intWarnings = 0;
        CompilerParameters loParameters = new CompilerParameters();
        loParameters.ReferencedAssemblies.Add("System");
        loParameters.ReferencedAssemblies.Add("System.Data");
        loParameters.ReferencedAssemblies.Add("System.Drawing");
        loParameters.ReferencedAssemblies.Add("System.Web");
        loParameters.ReferencedAssemblies.Add(AppDomain.CurrentDomain.BaseDirectory+"/bin/MySql.Data");
        CodeDomProvider loCompiler = CodeDomProvider.CreateProvider("csharp");
        CompilerResults loCompiled;

        try
        {
            loCompiled = loCompiler.CompileAssemblyFromFile(loParameters, AppDomain.CurrentDomain.BaseDirectory + "/app_code/" + fileName + ".cs");
            
            foreach (string str in loCompiled.Output)
            {
                strOutput += str + "<br> /";
            }

            foreach (CompilerError ex in loCompiled.Errors)
            {
                if (ex.IsWarning)
                {
                    intWarnings = intWarnings + 1;

                    strErrors += "(" + ex.Line.ToString() + "," + ex.Column.ToString() + ") warning " + ex.ErrorNumber + ": " + ex.ErrorText + "<br />";
                }
                else
                {
                    intErrors = intErrors + 1;
                    strErrors += "(" + ex.Line.ToString() + "," + ex.Column.ToString() + ") error " + ex.ErrorNumber + ": " + ex.ErrorText + "<br />";
                }

            }

            if (!loCompiled.Errors.HasErrors)
                File.Copy(loCompiled.PathToAssembly, AppDomain.CurrentDomain.BaseDirectory + "/bin/" + fileName + ".dll", true);
        }
        catch (Exception ex)
        {
            strErrors = ex.Message;
            intErrors = 1;
        }
    }