private CSharpCompilation CompileViews(ViewCompilationInfo[] results, string assemblyname) { var compilation = compiler.CreateCompilation(assemblyname); var syntaxTrees = new SyntaxTree[results.Length]; Parallel.For(0, results.Length, ParalellOptions, i => { ViewCompilationInfo result = results[i]; SourceText sourceText = SourceText.From(result.CSharpDocument.GeneratedCode, Encoding.UTF8); TemplateFileInfo fileInfo = result.TemplateFileInfo; SyntaxTree syntaxTree = compiler.CreateSyntaxTree(sourceText).WithFilePath(fileInfo.FullPath ?? fileInfo.ViewEnginePath); syntaxTrees[i] = syntaxTree; }); compilation = compilation.AddSyntaxTrees(syntaxTrees); compilation = ExpressionRewriter.Rewrite(compilation); compilation = AssemblyMetadataGenerator.AddAssemblyMetadata( compiler, compilation, Options); return(compilation); }
public static CSharpCompilation AddAssemblyMetadata( RoslynCompilationService compiler, CSharpCompilation compilation, CompilationOptions compilationOptions) { var applicationAssemblyName = Assembly.Load(new AssemblyName(compilationOptions.ApplicationName)).GetName(); var assemblyVersionContent = $"[assembly:{typeof(AssemblyVersionAttribute).FullName}(\"{applicationAssemblyName.Version}\")]"; var syntaxTree = compiler.CreateSyntaxTree(SourceText.From(assemblyVersionContent)); return(compilation.AddSyntaxTrees(syntaxTree)); }