public static ISolution GetSolution(string _solutionPath) { if (!File.Exists(_solutionPath)) { throw new InvalidOperationException("File not found (" + _solutionPath + ")"); } IWorkspace workspace = null; switch (Path.GetExtension(_solutionPath).ToUpper()) { case ".SLN": workspace = Workspace.LoadSolution(_solutionPath); break; case ".CSPROJ": workspace = Workspace.LoadStandAloneProject(_solutionPath); break; case ".CS": var solutionId = SolutionId.CreateNewId(); workspace = Workspace.GetWorkspace(solutionId); var projectId = ProjectId.CreateNewId(solutionId); var documentId = DocumentId.CreateNewId(projectId, Path.GetFileNameWithoutExtension(_solutionPath)); workspace.AddExistingDocument(documentId, _solutionPath); break; default: throw new InvalidOperationException("file type not supported"); } var solution = workspace.CurrentSolution; return(solution); }