Existe-t-il un moyen, textuel ou graphique, de visualiser la hiérarchie des dépendances entre les paquets NuGet ?
Réponses
Trop de publicités?Package Visualized de NuGet 1.4 devrait fonctionner. Voir http://docs.nuget.org/docs/release-notes/nuget-1.4
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.
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);
}
}
}
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.
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.