public static (AdhocWorkspace workspace, Project project) CreateWorkspaceAndProject(string language) { var host = Roslynator.CreateHost(typeof(TestHelpers).Assembly); var workspace = new AdhocWorkspace(host, WorkspaceKind.Host); var options = language == LanguageNames.CSharp ? (CompilationOptions) new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) : (CompilationOptions) new VisualBasicCompilationOptions(OutputKind.DynamicallyLinkedLibrary); var project = workspace.AddProject(ProjectInfo.Create( ProjectId.CreateNewId(), VersionStamp.Create(), "code", "code.dll", language, compilationOptions: options, metadataReferences: new[] { MetadataReference.CreateFromFile(typeof(string).Assembly.ManifestModule.FullyQualifiedName) } //metadataReferences: ReferencePaths.Paths // .Select(path => MetadataReference.CreateFromFile(path)) )); return(workspace, project); }
// Used for MEF composition. public static HostServices CreateHost(params Assembly[] additionalGenerators) => Roslynator.CreateHost(additionalGenerators == null ? new[] { Assembly.GetExecutingAssembly() } : additionalGenerators.Concat(new[] { Assembly.GetExecutingAssembly() }).ToArray());