Ejemplo n.º 1
0
        // create a C# compilation
        private Roslyn.Compilers.CSharp.Compilation CreateCSharpCompilation(CompilationRequest input)
        {
            // create compiler options
            var compileOpts = new Roslyn.Compilers.CSharp.CompilationOptions(OutputKind.DynamicallyLinkedLibrary);

            // create parser options
            var parseOpts = Roslyn.Compilers.CSharp.ParseOptions.Default;
            if (input.Definitions != null && input.Definitions.Any())
                parseOpts = parseOpts.WithPreprocessorSymbols(input.Definitions);

            // build syntax trees
            var trees = input.SourceFilePaths.Select(path =>
                CSharpTree.ParseCompilationUnit(File.ReadAllText(path), path, parseOpts));

            // create assembly references
            var asmRefs = input.ReferencePaths.Select(p =>
                new Roslyn.Compilers.AssemblyFileReference(p));

            // create compilation
            return CSharpCompilation.Create("BladeCsComp.dll", compileOpts, trees, asmRefs);
        }
Ejemplo n.º 2
0
        // create a C# compilation
        private Roslyn.Compilers.CSharp.Compilation CreateCSharpCompilation(CompilationRequest input)
        {
            // create compiler options
            var compileOpts = new Roslyn.Compilers.CSharp.CompilationOptions(OutputKind.DynamicallyLinkedLibrary);

            // create parser options
            var parseOpts = Roslyn.Compilers.CSharp.ParseOptions.Default;

            if (input.Definitions != null && input.Definitions.Any())
            {
                parseOpts = parseOpts.WithPreprocessorSymbols(input.Definitions);
            }

            // build syntax trees
            var trees = input.SourceFilePaths.Select(path =>
                                                     CSharpTree.ParseCompilationUnit(File.ReadAllText(path), path, parseOpts));

            // create assembly references
            var asmRefs = input.ReferencePaths.Select(p =>
                                                      new Roslyn.Compilers.AssemblyFileReference(p));

            // create compilation
            return(CSharpCompilation.Create("BladeCsComp.dll", compileOpts, trees, asmRefs));
        }