Exemplo n.º 1
0
        private static Project CreateDefaultProject()
        {
            Project project = new AdhocWorkspace()
                              .CurrentSolution
                              .AddProject("TestProject", "TestAssembly", LanguageNames.CSharp)
                              .WithMetadataReferences(ImmutableArray.Create(
                                                          CorLibReference,
                                                          CreateFromAssemblyName("System.Core.dll"),
                                                          CreateFromAssemblyName("System.Linq.dll"),
                                                          CreateFromAssemblyName("System.Linq.Expressions.dll"),
                                                          CreateFromAssemblyName("System.Runtime.Serialization.Formatters.dll"),
                                                          CreateFromAssemblyName("System.Runtime.dll"),
                                                          CreateFromAssemblyName("System.Collections.dll"),
                                                          CreateFromAssemblyName("System.Collections.Immutable.dll"),
                                                          CreateFromAssemblyName("System.Text.RegularExpressions.dll"),
                                                          CreateFromAssemblyName("Microsoft.CodeAnalysis.dll"),
                                                          CreateFromAssemblyName("Microsoft.CodeAnalysis.CSharp.dll")));

            var compilationOptions = (CSharpCompilationOptions)project.CompilationOptions;

            CSharpCompilationOptions newCompilationOptions = compilationOptions
                                                             .WithAllowUnsafe(true)
                                                             .WithOutputKind(OutputKind.DynamicallyLinkedLibrary);

            var parseOptions = (CSharpParseOptions)project.ParseOptions;

            CSharpParseOptions newParseOptions = parseOptions
                                                 .WithLanguageVersion(LanguageVersion.Latest);

            return(project
                   .WithCompilationOptions(newCompilationOptions)
                   .WithParseOptions(newParseOptions));
        }
Exemplo n.º 2
0
        public static Project CreateProject(string language)
        {
            ProjectId projectId = ProjectId.CreateNewId(debugName: FileUtility.TestProjectName);

            Project project = new AdhocWorkspace()
                              .CurrentSolution
                              .AddProject(projectId, FileUtility.TestProjectName, FileUtility.TestProjectName, language)
                              .AddMetadataReferences(
                projectId,
                new MetadataReference[]
            {
                RuntimeMetadataReference.CorLibReference,
                RuntimeMetadataReference.CreateFromAssemblyName("System.Core.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Linq.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Linq.Expressions.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Runtime.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Collections.Immutable.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("Microsoft.CodeAnalysis.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("Microsoft.CodeAnalysis.CSharp.dll"),
            })
                              .GetProject(projectId);

            if (language == LanguageNames.CSharp)
            {
                var compilationOptions = (CSharpCompilationOptions)project.CompilationOptions;

                var parseOptions = (CSharpParseOptions)project.ParseOptions;

                project = project
                          .WithCompilationOptions(compilationOptions.WithAllowUnsafe(true))
                          .WithParseOptions(parseOptions.WithLanguageVersion(LanguageVersion.Latest));
            }

            return(project);
        }
Exemplo n.º 3
0
        public async Task VBParseOptionsInCompilationOptions()
        {
            var project = new AdhocWorkspace().CurrentSolution.AddProject("empty", "empty", LanguageNames.VisualBasic);

            project = project.WithCompilationOptions(
                ((VisualBasic.VisualBasicCompilationOptions)project.CompilationOptions).WithParseOptions((VisualBasic.VisualBasicParseOptions)project.ParseOptions));

            var checksum = await project.State.GetChecksumAsync(CancellationToken.None).ConfigureAwait(false);

            Assert.NotNull(checksum);
        }
Exemplo n.º 4
0
        private static Project CreateProject()
        {
            const String projectName = "TestProject";

            Project project = new AdhocWorkspace()
                              .CurrentSolution
                              .AddProject(projectName, projectName, LanguageNames.CSharp)
                              .AddMetadataReference(CorlibReference)
                              .AddMetadataReference(SystemCoreReference)
                              .AddMetadataReference(CSharpCodeAnalysisReference)
                              .AddMetadataReference(CodeAnalysisReference);

            CompilationOptions options = project.CompilationOptions
                                         .WithOutputKind(OutputKind.DynamicallyLinkedLibrary);

            return(project.WithCompilationOptions(options));
        }
Exemplo n.º 5
0
        protected virtual Project CreateProject()
        {
            ProjectId projectId = ProjectId.CreateNewId(debugName: FileUtility.TestProjectName);

            Project project = new AdhocWorkspace()
                              .CurrentSolution
                              .AddProject(projectId, FileUtility.TestProjectName, FileUtility.TestProjectName, Language)
                              .AddMetadataReferences(
                projectId,
                new MetadataReference[]
            {
                RuntimeMetadataReference.CorLibReference,
                RuntimeMetadataReference.CreateFromAssemblyName("System.Core.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Linq.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Linq.Expressions.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Runtime.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("System.Collections.Immutable.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("Microsoft.CodeAnalysis.dll"),
                RuntimeMetadataReference.CreateFromAssemblyName("Microsoft.CodeAnalysis.CSharp.dll"),
            })
                              .GetProject(projectId);

            if (Language == LanguageNames.CSharp)
            {
                var compilationOptions = (CSharpCompilationOptions)project.CompilationOptions;

                CSharpCompilationOptions newCompilationOptions = compilationOptions
                                                                 .WithAllowUnsafe(true)
                                                                 .WithOutputKind(OutputKind.DynamicallyLinkedLibrary);

                var parseOptions = (CSharpParseOptions)project.ParseOptions;

                CSharpParseOptions newParseOptions = parseOptions
                                                     .WithLanguageVersion(LanguageVersion.Latest);

                project = project
                          .WithCompilationOptions(newCompilationOptions)
                          .WithParseOptions(newParseOptions);
            }

            return(project);
        }
        public async Task VBParseOptionsInCompilationOptions()
        {
            var project = new AdhocWorkspace().CurrentSolution.AddProject("empty", "empty", LanguageNames.VisualBasic);
            project = project.WithCompilationOptions(
                ((VisualBasic.VisualBasicCompilationOptions)project.CompilationOptions).WithParseOptions((VisualBasic.VisualBasicParseOptions)project.ParseOptions));

            var checksum = await project.State.GetChecksumAsync(CancellationToken.None).ConfigureAwait(false);

            Assert.NotNull(checksum);
        }