protected override TemplatesCompilationResult OnCompile() { TemplatesCompilationResult result = new TemplatesCompilationResult(); foreach (var source in this.Sources) { using (StreamReader reader = new StreamReader(source.SourceStream)) { InternalCSharpTemplateCompiler compiler = new InternalCSharpTemplateCompiler(reader, ns, source.ReferenceFilePath); compiler.generate(); generatedResourcesClassNames.Add(new GeneratedResourceClass { ClassName = compiler.className, DiscoveryPath = source.DiscoveryPath }); } } generateDiscoveryClass(); #if DEBUG using (FileStream fs = new FileStream("/home/thepumpkin/template.cs", FileMode.Create, FileAccess.Write)) { using (StreamWriter writer = new StreamWriter(fs)) { csharp.GenerateCodeFromCompileUnit(this.codeCompilerUnit, writer, null); } } #endif string[] assemblies = new string[] { "BlackLinks" }; CompilerParameters prms = new CompilerParameters(assemblies); if (!string.IsNullOrEmpty(this.OutputAssemblyPath)) { prms.OutputAssembly = this.OutputAssemblyPath; } CompilerResults results = this.csharp.CompileAssemblyFromDom(prms, new CodeCompileUnit[] { this.codeCompilerUnit }); Console.WriteLine("Errors Count= {0}", results.Errors.Count); if (results.CompiledAssembly != null) { result.Assemblies.Add(results.CompiledAssembly); } #if DEBUG foreach (CompilerError error in results.Errors) { Console.Error.WriteLine("\t{0} at file {1}#{2}", error.ErrorText, error.FileName, error.Line); result.CompilationErrors.Add(error); } #endif return(result); }
protected override TemplatesCompilationResult OnCompile () { TemplatesCompilationResult result = new TemplatesCompilationResult (); foreach (var source in this.Sources) { using (StreamReader reader = new StreamReader (source.SourceStream)) { InternalCSharpTemplateCompiler compiler = new InternalCSharpTemplateCompiler (reader, ns,source.ReferenceFilePath); compiler.generate (); generatedResourcesClassNames.Add(new GeneratedResourceClass { ClassName = compiler.className, DiscoveryPath = source.DiscoveryPath }); } } generateDiscoveryClass(); #if DEBUG using (FileStream fs = new FileStream ("/home/thepumpkin/template.cs", FileMode.Create, FileAccess.Write)) { using (StreamWriter writer = new StreamWriter (fs)) { csharp.GenerateCodeFromCompileUnit (this.codeCompilerUnit, writer, null); } } #endif string[] assemblies = new string[] { "BlackLinks" }; CompilerParameters prms = new CompilerParameters (assemblies); if (!string.IsNullOrEmpty (this.OutputAssemblyPath)) { prms.OutputAssembly = this.OutputAssemblyPath; } CompilerResults results = this.csharp.CompileAssemblyFromDom (prms, new CodeCompileUnit[] { this.codeCompilerUnit }); Console.WriteLine ("Errors Count= {0}", results.Errors.Count); if(results.CompiledAssembly != null) { result.Assemblies.Add(results.CompiledAssembly); } #if DEBUG foreach (CompilerError error in results.Errors) { Console.Error.WriteLine ("\t{0} at file {1}#{2}", error.ErrorText, error.FileName, error.Line); result.CompilationErrors.Add(error); } #endif return result; }