web-dev-qa-db-fra.com

Supprimer toutes les références inutilisées d'un projet dans des projets Visual Studio

Je me demandais simplement s'il était possible, dans différentes versions de Visual Studio, de supprimer automatiquement toutes les références d'un projet qui n'avaient jamais été utilisées.

Dans votre réponse, indiquez à quelle version de VS la solution s’applique.

220
KroaX

Si vous avez installé Resharper (plugin), vous pouvez accéder à une fonctionnalité vous permettant d’analyser les références utilisées via Explorateur de solutions> (clic droit) Références> Optimiser les références ....

http://www.jetbrains.com/resharper/webhelp/Refactorings__Remove_Unused_References.html

Cette fonctionnalité ne gère pas correctement:

  • Dépendances assemblées injectées
  • Assemblages chargés dynamiquement (Assembly.LoadFile)
  • Assemblages de code natif chargés via interop
  • Contrôles ActiveX (COM interop)
  • Autres moyens créatifs de charger des assemblages

enter image description here

49
Ernest

L'extension Resharper le fera pour vous. 

Cette extension prend en charge Visual Studio 2005 à 2017.

Bien que le compilateur n'inclue pas les assemblages inutilisés, l'utilisation d'instructions et de références parasites ralentit Visual Studio et Intellisense, car les outils doivent prendre en compte davantage de code.

27
Mathieson

Vous pouvez essayer l’extension gratuite VS2010: Assistant de référence par groupe Lardite. Cela fonctionne parfaitement pour moi. Cet outil aide à trouver les références non utilisées et vous permet de choisir les références à supprimer.

26
Wacky

Dans un projet Visual Basic, il est possible de supprimer "Références inutilisées" (Projet -> Références -> Références inutilisées). En C #, il n’ya pas une telle fonction.

La seule façon de procéder dans un projet C # (sans autres outils) consiste à supprimer les assemblys non utilisés possibles, à compiler le projet et à vérifier si des erreurs se sont produites lors de la compilation. Si aucune erreur ne se produit, vous avez supprimé un assemblage inutilisé. ( Voir mon post

Si vous voulez savoir quel projet (Assemblage) dépend d'autres assemblages, vous pouvez utiliser NDepend .

21
Jehof

Pour tous ceux qui viennent chercher Visual studio 2012:

Télécharger et installer Reference Assistant for Visual Studio 11

Plus tard tu peux faire:

enter image description here

16
Habib

Pour Visual Studio 2013/2015/2017, une extension fait exactement ce que vous voulez: ResolveUR . Ce que cela fait fondamentalement est: 

  • la référence est supprimée dans le projet
  • le projet est compilé avec msbuild
  • vérifier les erreurs de construction
  • restaurer les références supprimées s'il y avait des erreurs de construction.
14

Dans Visual Studio 2013, cette extension fonctionne: ResolveUR

12
General Failure

Certaines personnes ont suggéré d'utiliser un outil génial - Assistant de référence pour Visual Studio . Le problème est que VS2012 est le dernier Visual Studio pris en charge. Mais il y a aussi moyen de le faire fonctionner dans VS2013;)

Et voici comment:

1) Télécharger Lardite.RefAssistant.11.0.vsix

2) Modifiez l’extension en Zip: Lardite.RefAssistant.11.0.vsix -> Lardite.RefAssistant.11.0.Zip

3) Décompressez et ouvrez le fichier extension.vsixmanifest dans l'éditeur de texte.

4) Trouvez toutes les occurrences de InstallationTarget Version="[11.0,12.0)" et remplacez-les par InstallationTarget Version="[11.0,12.0]" (notez le crochet de fermeture)

5) Enregistrez le fichier et compressez tous les fichiers afin qu’ils se trouvent au niveau racine de Zip

6) Modifiez l’extension de la nouvelle Zip en vsix

7) Installer et profiter :)

Je l'ai testé avec VS2013, merci source pour le tutoriel

EDIT Ajouter au support de VS 2015 Community Edition

<InstallationTarget Version="[14.0,15.0]" Id="Microsoft.VisualStudio.Community" />

Signification des crochets

[ – minimum version inclusive.

] – maximum version inclusive. 

( – minimum version exclusive. 

) – maximum version exclusive.
9
VladL

Vous pouvez utiliser Extension de l'Assistant de référence depuis la galerie d'extensions Visual Studio.

Utilisé et fonctionne pour Visual Studio 2010.

7
eka808

Avec les versions Visual Studio 2017 et 2015, vous pouvez utiliser la fonctionnalité Code Map, mais cette fonctionnalité n'est disponible que dans Enterprise Edition, pas dans Community ou Professional versions.

Cliquez avec le bouton droit de la souris sur le nœud du projet dans l'explorateur de solutions et sélectionnez "Afficher sur la carte du code". Cela affichera votre .dll comme un seul nœud dans un graphique vierge. Cliquez avec le bouton droit de la souris sur ce nœud dans le code map et sélectionnez "Afficher les assemblages cette référence". Cela ajoutera un nœud supplémentaire appelé "Externals" qui peut être développé pour afficher uniquement les assemblys réellement référencés.

 enter image description here

6
Glenn Slayden

Tout ce dont vous avez besoin est de pierre et de jointures nues, vous pouvez le faire comme un homme des cavernes.

  1. Supprimer les espaces de noms inutilisés (pour chaque classe)
  2. Exécuter la construction de débogage
  3. Copiez les références de votre espace de noms exécutable et restant dans le nouvel emplacement.
  4. Lancer l'exécutable
  5. Une erreur de référence manquante DLL se produira
  6. Copier le fichier requis DLL à partir du dossier Debug
  7. Répétez 4-6
  8. Gu Gu Ga Ga?
  9. Jette ta pierre

Vous pouvez également compter sur vos outils de construction pour vous indiquer quelle référence est toujours requise. C'est l'ère de VS 2017, l'homme des cavernes a encore survécu.

2
Eark

En utilisant DevExpress, je suis ces instructions:

  1. Dans VS, accédez à DevExpress - Editor - Code Cleanup. Sous Règles, cochez la case "Supprimer les références d'espace de nom inutilisées". Cliquez sur OK.
  2. Cliquez avec le bouton droit de la souris sur la solution et choisissez "Nettoyage du code". Le nettoyage dure quelques minutes et se termine.
  3. Construisez votre application
1