internal static Solution CreateFullSolution(HostServices?hostServices = null) { var solution = new AdhocWorkspace(hostServices ?? Host.Mef.MefHostServices.DefaultHost).CurrentSolution; var languages = ImmutableHashSet.Create(LanguageNames.CSharp, LanguageNames.VisualBasic); var solutionOptions = solution.Workspace.Services.GetRequiredService <IOptionService>().GetSerializableOptionsSnapshot(languages); solution = solution.WithOptions(solutionOptions); var csCode = "class A { }"; var project1 = solution.AddProject("Project", "Project.dll", LanguageNames.CSharp); var document1 = project1.AddDocument("Document1", SourceText.From(csCode)); var vbCode = "Class B\r\nEnd Class"; var project2 = document1.Project.Solution.AddProject("Project2", "Project2.dll", LanguageNames.VisualBasic); var document2 = project2.AddDocument("Document2", SourceText.From(vbCode)); solution = document2.Project.Solution.GetRequiredProject(project1.Id) .AddProjectReference(new ProjectReference(project2.Id, ImmutableArray.Create("test"))) .AddMetadataReference(MetadataReference.CreateFromFile(typeof(object).Assembly.Location)) .AddAnalyzerReference(new AnalyzerFileReference(Path.Combine(TempRoot.Root, "path1"), new TestAnalyzerAssemblyLoader())) .AddAdditionalDocument("Additional", SourceText.From("hello"), ImmutableArray.Create("test"), @".\Add").Project.Solution; return(solution .WithAnalyzerReferences(new[] { new AnalyzerFileReference(Path.Combine(TempRoot.Root, "path2"), new TestAnalyzerAssemblyLoader()) }) .AddAnalyzerConfigDocuments( ImmutableArray.Create( DocumentInfo.Create( DocumentId.CreateNewId(project1.Id), ".editorconfig", loader: TextLoader.From(TextAndVersion.Create(SourceText.From("root = true"), VersionStamp.Create())))))); }