void ProcessCompilingResult(CompilerResults results, CompilerParameters compilerParams, ScriptParser parser, string scriptFileName, string assemblyFileName, string[] additionalDependencies) { LastCompileResult = results; if (results.Errors.HasErrors) { CompilerException ex = CompilerException.Create(results.Errors, options.hideCompilerWarnings); if (options.syntaxCheck) Console.WriteLine("Compile: {0} error(s)\n{1}", ex.ErrorCount, ex.Message); else throw ex; } else { if (options.syntaxCheck) Console.WriteLine("Compile: OK"); if (options.verbose) { Console.WriteLine(" Compiler Output: ", options); foreach (CompilerError err in results.Errors) Console.WriteLine(" {0}({1},{2}):{3} {4} {5}", err.FileName, err.Line, err.Column, (err.IsWarning ? "warning" : "error"), err.ErrorNumber, err.ErrorText); Console.WriteLine("> ----------------", options); } if (!options.DBG) //.pdb and imported files might be needed for the debugger { parser.DeleteImportedFiles(); string pdbFile = Path.Combine(Path.GetDirectoryName(assemblyFileName), Path.GetFileNameWithoutExtension(assemblyFileName) + ".pdb"); Utils.FileDelete(pdbFile); } if (options.useCompiled) { if (options.useSmartCaching) { MetaDataItems depInfo = new MetaDataItems(); string[] searchDirs = Utils.RemovePathDuplicates(options.searchDirs); //save imported scripts info depInfo.AddItems(parser.ImportedFiles, false, searchDirs); //additionalDependencies (precompilers) are warranted to be as absolute path so no need to pass searchDirs or isAssembly depInfo.AddItems(additionalDependencies, false, new string[0]); //save referenced local assemblies info string[] newProbingDirs = depInfo.AddItems(compilerParams.ReferencedAssemblies, true, searchDirs); foreach (string dir in newProbingDirs) options.AddSearchDir(dir); //needed to be added at Compilation for further resolving during the Invoking stage depInfo.StampFile(assemblyFileName); } FileInfo scriptFile = new FileInfo(scriptFileName); FileInfo asmFile = new FileInfo(assemblyFileName); if (scriptFile != null && asmFile != null) { asmFile.LastWriteTimeUtc = scriptFile.LastWriteTimeUtc; } } } }
private void ProcessCompilingResult(CompilerResults results, CompilerParameters compilerParams, ScriptParser parser, string scriptFileName, string assemblyFileName, string[] additionalDependencies) { LastCompileResult = results; if (results.Errors.Count != 0) { throw CompilerException.Create(results.Errors, options.hideCompilerWarnings); } else { if (!options.DBG) //.pdb and imported files might be needed for the debugger { parser.DeleteImportedFiles(); string pdbFile = Path.Combine(Path.GetDirectoryName(assemblyFileName), Path.GetFileNameWithoutExtension(assemblyFileName) + ".pdb"); if (File.Exists(pdbFile)) File.Delete(pdbFile); } if (options.useCompiled) { if (options.useSmartCaching) { MetaDataItems depInfo = new MetaDataItems(); string[] searchDirs = Utils.RemovePathDuplicates(options.searchDirs); //save imported scripts info depInfo.AddItems(parser.ImportedFiles, false, searchDirs); //additionalDependencies (precompilers) are warranted to be as absolute path so no need to pass searchDirs or isAssembly depInfo.AddItems(additionalDependencies, false, new string[0]); //save referenced local assemblies info string[] newProbingDirs = depInfo.AddItems(compilerParams.ReferencedAssemblies, true, searchDirs); foreach (string dir in newProbingDirs) options.AddSearchDir(dir); //needed to be added at Compilation for further resolving during the Invoking stage depInfo.StampFile(assemblyFileName); } FileInfo scriptFile = new FileInfo(scriptFileName); FileInfo asmFile = new FileInfo(assemblyFileName); if (scriptFile != null && asmFile != null) { asmFile.LastWriteTimeUtc = scriptFile.LastWriteTimeUtc; } } } }