74 votes

Afficher la hiérarchie des dépendances des paquets NuGet

Existe-t-il un moyen, textuel ou graphique, de visualiser la hiérarchie des dépendances entre les paquets NuGet ?

7voto

Eugene Petrenko Points 995

Package Visualized de NuGet 1.4 devrait fonctionner. Voir http://docs.nuget.org/docs/release-notes/nuget-1.4

6voto

iosi G Points 613

Comme il s'agit d'une vieille question, il est important de noter ce qui suit :

Il s'agit d'une fonctionnalité intégrée dans le nouveau format csproj. Dans Visual Studio 2017 et plus, ouvrez l'explorateur de solutions et vous pouvez trouver des paquets comme :

{Your project}->Dependencies->Packages

Vous pouvez ouvrir chaque arbre de dépendances NuGet et l'utiliser de manière récursive, ce qui vous permet de voir non seulement l'arbre de dépendances de paquets spécifiques, mais aussi les paquets NuGet que votre projet installe réellement.

5voto

Javier Solis Points 51

J'ajoute une solution compatible avec la dernière version de nuget-core

install-package nuget.core

Voici la console App pour obtenir le graphique des dépendances

    class Program
    {
        static void Main()
        {
            Console.Write("Enter the local repo folder: ");
            var repoFolder = Console.ReadLine();

            var repo = new LocalPackageRepository(repoFolder);
            IQueryable<IPackage> packages = repo.GetPackages();
            OutputGraph(repo, packages, 0);
        }

        static void OutputGraph(LocalPackageRepository repository, IEnumerable<IPackage> packages, int depth)
        {
            foreach (IPackage package in packages)
            {
                Console.WriteLine("{0}{1} v{2}", new string(' ', depth), package.Id, package.Version);

                IList<IPackage> dependentPackages = new List<IPackage>();
                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);
            }
        }
    }

5voto

Eyal Ben Moshe Points 1364

Une autre option est d'utiliser l'option nuget-deps-tree paquet npm. Il prend en charge à la fois le paquets.config et le format plus récent actifs utilisé par les projets .NET.

2voto

Xavier Decoster Points 6262

FYI, MyGet.org a ce genre de visualisation intégrée. Vous pouvez visualiser les graphiques de dépendance sur la page Détails du flux.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X