View NuGet package dependency hierarchy

后端 未结 10 1318
遇见更好的自我
遇见更好的自我 2020-12-07 16:24

Is there a way, either textual or graphical, to view the hierarchy of dependencies between NuGet packages?

10条回答
  •  时光取名叫无心
    2020-12-07 17:10

    I add a compatible solution with the latest version of nuget-core

    install-package nuget.core
    

    This is the console App to get the dependencies graph

        class Program
        {
            static void Main()
            {
                Console.Write("Enter the local repo folder: ");
                var repoFolder = Console.ReadLine();
    
                var repo = new LocalPackageRepository(repoFolder);
                IQueryable packages = repo.GetPackages();
                OutputGraph(repo, packages, 0);
            }
    
            static void OutputGraph(LocalPackageRepository repository, IEnumerable packages, int depth)
            {
                foreach (IPackage package in packages)
                {
                    Console.WriteLine("{0}{1} v{2}", new string(' ', depth), package.Id, package.Version);
    
                    IList dependentPackages = new List();
                    foreach (var dependencySet in package.DependencySets)
                    {
                        foreach (var dependency in dependencySet.Dependencies)
                        {
                            var dependentPackage = repository.FindPackage(dependency.Id, dependency.VersionSpec, true, true);
                            if (dependentPackage != null)
                            {
                                dependentPackages.Add(dependentPackage);
                            }
                        }       
                    }
    
                    OutputGraph(repository, dependentPackages, depth += 3);
                }
            }
        }
    

提交回复
热议问题