web-dev-qa-db-fra.com

Comment pouvez-vous trouver les paquets NuGet inutilisés dans une solution?

Comment pouvez-vous trouver les paquets NuGet inutilisés dans une solution?

J'ai un certain nombre de solutions où il y a beaucoup de paquets installés, et un grand nombre sont marqués comme ayant des mises à jour.

Cependant, je crains qu'il y ait des changements radicaux. Je souhaite donc tout d'abord nettoyer en supprimant tous les packages inutilisés.

109
SteveC

ReSharper 2016.1 a ne fonctionnalité permettant de supprimer NuGet inutilisé.

Il peut être exécuté sur une solution et sur chaque projet dans une solution et effectue les opérations suivantes:

  1. Analysez votre code et collectez des références aux assemblys.
  2. Construisez un graphique d’utilisation NuGet basé sur l’utilisation des assemblages.
  3. Les packages sans fichiers de contenu, non utilisés eux-mêmes et sans dépendances utilisées, sont supposés inutilisés et suggérés de les supprimer.

Malheureusement, cela ne fonctionne pas pour project.json projets ( RSRP-454515 ) et projets centraux ASP.NET ( RSRP-459076 )

46
ulex

Vous pouvez utiliser l’extension Visual Studio ResolveUR - Résoudre les références inutilisées

Résolvez les références inutilisées, y compris les références de nugets, dans les projets Visual Studio 2012/2013 via un élément de menu au niveau des nœuds de solution et de projet dans la fenêtre de l'outil Explorateur de solutions.

Ce n'est pas une tâche facile, alors je suggère de faire une sauvegarde et/ou une validation avant, dans le seul but de revenir en arrière en cas de problème.

19
dknaack

Vous pouvez accomplir cela en utilisant Resharper 2018.1.

Cliquez avec le bouton droit sur le projet> Refactor> Supprimer les références non utilisées.

Si votre projet est petit, vous pouvez également> Analyser les références utilisées. . .

Une fenêtre va s'ouvrir. Sélectionnez toutes les références et supprimez-les toutes. Revenez ensuite en ajoutant ceux qui vous donnent une erreur de compilation.

3
Nick Gallimore

C'est du travail manuel, mais ça marche.

  1. Utilisez ReSharper ou un outil d’analyse de code similaire pour identifier les références non utilisées dans vos projets et désinstaller le nuget dans les projets correspondants.

  2. Parfois, des nugets désinstallés persistent encore dans les listes packages installés et mises à jour de la boîte de dialogue Gérer les packages NuGet. Fermez Visual Studio, supprimez le dossier packages, puis rouvrez la solution et restaurez vos nugets.

1
angularsen

Je ne pense pas qu'il existe un moyen par défaut de le savoir. La raison principale est la variété des tâches que ces packages peuvent effectuer, du référencement d’un assemblage à l’injection de code source dans votre projet. Vous voudrez peut-être vérifier le Nuget.Extensions bien. Le fil suivant sur codeplex parle d'un rapport d'audit de paquets de nuget.

http://nuget.codeplex.com/discussions/429694

(NuGet a été déplacé de Codeplex vers GitHub. Archive du lien ci-dessus :) https://web.archive.org/web/20171212202557/http://nuget.codeplex.com:80/discussions/429694

0
Nikhil Gupta