コード例 #1
0
        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");
            }
        }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
        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);
        }