private void GetSubProjects(string projectName, EnvDTE.ProjectItems projectItems, IList <EnvDTE.Project> items) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (projectItems == null) { return; } try { var index = 1; foreach (var projectItem in projectItems.OfType <EnvDTE.ProjectItem>()) { try { GetSubProjects(projectName, projectItem, items); } catch { _tracer.TraceError("Error loading project item #{0} in project {1}.", index, projectName ?? "unknown"); } index += 1; } } catch { _tracer.TraceError("Error loading a project item in project {0}.", projectName ?? "unknown"); } }
private void GetProjectFiles([CanBeNull] string projectName, [ItemNotNull][CanBeNull] EnvDTE.ProjectItems projectItems, [NotNull] IDictionary <string, DteProjectFile> items) { Contract.Requires(items != null); if (projectItems == null) { return; } try { var index = 1; // Must use forach here! See https://connect.microsoft.com/VisualStudio/feedback/details/1093318/resource-files-falsely-enumerated-as-part-of-project foreach (var projectItem in projectItems.OfType <EnvDTE.ProjectItem>()) { try { GetProjectFiles(projectName, projectItem, items); } catch { _tracer.TraceError("Error loading project item #{0} in project {1}.", index, projectName); } index += 1; } } catch { _tracer.TraceError("Error loading a project item in project {0}.", projectName); } }
private JObject AddProjectItems([ItemNotNull][CanBeNull] EnvDTE.ProjectItems projectItems, [NotNull] JObject jProject) { Microsoft.VisualStudio.Shell.ThreadHelper.ThrowIfNotOnUIThread(); if (projectItems == null) { return(jProject); } try { var index = 1; foreach (var projectItem in projectItems.OfType <EnvDTE.ProjectItem>().OrderBy(item => item.Name)) { try { AddProjectItems(projectItem, jProject); } catch { _tracer.TraceWarning("Can't load project item #{0}", index); } index += 1; } } catch { _tracer.TraceWarning("Can't load a project item."); } return(jProject); }