/// <summary> /// Create a project using the inputted strings as sources. /// </summary> /// <param name="sources">Classes in the form of strings</param> /// <param name="language">The language the source code is in</param> /// <returns>A Project created out of the Douments created from the source strings</returns> private static Project CreateProject(string[] sources, string language = LanguageNames.CSharp) { string fileNamePrefix = DefaultFilePathPrefix; string fileExt = language == LanguageNames.CSharp ? CSharpDefaultFileExt : VisualBasicDefaultExt; var projectId = ProjectId.CreateNewId(debugName: TestProjectName); var solution = new CustomWorkspace() .CurrentSolution .AddProject(projectId, TestProjectName, TestProjectName, language) .AddMetadataReference(projectId, CorlibReference) .AddMetadataReference(projectId, SystemCoreReference) .AddMetadataReference(projectId, CSharpSymbolsReference) .AddMetadataReference(projectId, CodeAnalysisReference); int count = 0; foreach (var source in sources) { var newFileName = fileNamePrefix + count + "." + fileExt; var documentId = DocumentId.CreateNewId(projectId, debugName: newFileName); solution = solution.AddDocument(documentId, newFileName, SourceText.From(source)); count++; } return solution.GetProject(projectId); }
public static Solution CreateOriginalDocument(string originalCode, CustomWorkspace workspace, out DocumentId documentId) { var projectId = workspace.AddProject("ProjectUnderTest", LanguageNames.CSharp); documentId = workspace.AddDocument(projectId, "SourceUnderTest.cs", originalCode); var solution = workspace.CurrentSolution .AddMetadataReference(projectId, mscorlib) .AddMetadataReference(projectId, System) .AddMetadataReference(projectId, SystemCore); return solution; }
private Project CreateProject() { var projectId = ProjectId.CreateNewId(debugName: projectName); var solution = new CustomWorkspace() .CurrentSolution .AddProject(projectId, projectName, projectName, LanguageNames.CSharp) .AddMetadataReference(projectId, CorlibReference) .AddMetadataReference(projectId, SystemCoreReference) .AddMetadataReference(projectId, CSharpSymbolsReference) .AddMetadataReference(projectId, CodeAnalysisReference); foreach (var file in files) { var documentId = DocumentId.CreateNewId(projectId, debugName: file.Path); solution = solution.AddDocument(documentId, file.Path, SourceText.From(file.Content)); } return solution.GetProject(projectId); }