Exemple #1
0
        internal async Task <IDictionary <string, List <EnvDTEProject> > > GetDependentEnvDTEProjectsDictionaryAsync()
        {
            // Get all of the projects in the solution and build the reverse graph. i.e.
            // if A has a project reference to B (A -> B) the this will return B -> A
            // We need to run this on the ui thread so that it doesn't freeze for websites. Since there might be a
            // large number of references.
            await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();

            Init();

            var dependentEnvDTEProjectsDictionary = new Dictionary <string, List <Project> >();
            var envDTEProjects = GetEnvDTEProjects();

            foreach (EnvDTEProject envDTEProj in envDTEProjects)
            {
                if (EnvDTEProjectUtility.SupportsReferences(envDTEProj))
                {
                    foreach (var referencedProject in EnvDTEProjectUtility.GetReferencedProjects(envDTEProj))
                    {
                        AddDependentProject(dependentEnvDTEProjectsDictionary, referencedProject, envDTEProj);
                    }
                }
            }

            return(dependentEnvDTEProjectsDictionary);
        }
Exemple #2
0
        internal IDictionary <string, List <EnvDTEProject> > GetDependentEnvDTEProjectsDictionary()
        {
            Init();

            var dependentEnvDTEProjectsDictionary = new Dictionary <string, List <Project> >();

            // Get all of the projects in the solution and build the reverse graph. i.e.
            // if A has a project reference to B (A -> B) the this will return B -> A
            // We need to run this on the ui thread so that it doesn't freeze for websites. Since there might be a
            // large number of references.
            ThreadHelper.Generic.Invoke(() =>
            {
                foreach (EnvDTEProject envDTEProj in GetEnvDTEProjects())
                {
                    if (EnvDTEProjectUtility.SupportsReferences(envDTEProj))
                    {
                        foreach (var referencedProject in EnvDTEProjectUtility.GetReferencedProjects(envDTEProj))
                        {
                            AddDependentProject(dependentEnvDTEProjectsDictionary, referencedProject, envDTEProj);
                        }
                    }
                }
            });

            return(dependentEnvDTEProjectsDictionary);
        }
        public Task <IEnumerable <string> > GetReferencedProjectsAsync()
        {
            if (Project.Kind != null &&
                ProjectType.IsSupportedForAddingReferences(Project.Kind))
            {
                return(System.Threading.Tasks.Task.FromResult(EnvDTEProjectUtility.GetReferencedProjects(Project).Select(p => p.UniqueName)));
            }

            return(System.Threading.Tasks.Task.FromResult(Enumerable.Empty <string>()));
        }
        public async Task <IEnumerable <string> > GetReferencedProjectsAsync()
        {
            await _threadingService.JoinableTaskFactory.SwitchToMainThreadAsync();

            if (Project.Kind != null &&
                ProjectType.IsSupportedForAddingReferences(Project.Kind))
            {
                return(EnvDTEProjectUtility.GetReferencedProjects(Project)
                       .Select(p =>
                {
                    ThreadHelper.ThrowIfNotOnUIThread();
                    return p.UniqueName;
                }));
            }

            return(Enumerable.Empty <string>());
        }
Exemple #5
0
        public async Task <IEnumerable <string> > GetReferencedProjectsAsync()
        {
            if (!IsDeferred)
            {
                if (Project.Kind != null &&
                    SupportedProjectTypes.IsSupportedForAddingReferences(Project.Kind))
                {
                    return(EnvDTEProjectUtility.GetReferencedProjects(Project).Select(p => p.UniqueName));
                }

                return(Enumerable.Empty <string>());
            }
            else
            {
                if (ProjectTypeGuids.All(SupportedProjectTypes.IsSupportedForAddingReferences))
                {
                    return(await _workspaceService.GetProjectReferencesAsync(FullProjectPath));
                }

                return(Enumerable.Empty <string>());
            }
        }