299 votes

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

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

Dans votre réponse, veuillez préciser à quelle version de VS la solution s'applique.

4 votes

De manière générale, je me demande si la suppression de ces DLL entraîne une amélioration notable du temps de construction ou autre chose. (Bien sûr, à part la suppression des dépendances redondantes)

3 votes

Existe-t-il une extension gratuite similaire pour VS2015 ?

1 votes

Les projets VB.Net l'ont depuis VS 2005, mais il n'a jamais été implémenté pour les projets C#. msdn.microsoft.com/fr/us/library/7sfxafba

59voto

Ernest Points 128

Si vous avez installé Resharper (plugin), vous pouvez accéder à une fonctionnalité qui vous permet d'analyser les références utilisées via Solution Explorer > (clic droit) Références > Optimiser les références...

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

Cette fonction ne gère pas correctement :

  • Assemblages injectés en fonction des dépendances
  • Assemblages chargés dynamiquement (Assembly.LoadFile)
  • Assemblages de code natif chargés par interopérabilité
  • Contrôles ActiveX (interopérabilité COM)
  • Autres moyens créatifs de charger les assemblages

enter image description here

1 votes

Votre dernière déclaration "Cependant, ce n'est pas parfait, tous les assemblages qui dépendent des assemblages référencés dans votre projet actuel sont toujours marqués comme inutilisés" n'est en fait pas un problème. Le build sait qu'il faut copier les références de vos références. Voir cette réponse : stackoverflow.com/a/2290139/26262

1 votes

Bien que ce soit une façon viable de le faire, "dans diverses versions de Visual Studio" signifie pour moi qu'il ne s'agit pas d'autre chose mais déjà "dans".

28voto

Wacky Points 339

Vous pouvez essayer l'extension gratuite VS2010 : Assistant de référence par le groupe Lardite. Il fonctionne parfaitement pour moi. Cet outil aide à trouver les références inutilisées et vous permet de choisir celles qui doivent être supprimées.

4 votes

Ne fonctionne pas avec le projet MVC. Il supprime les DLL essentielles comme .Helpers et .WebPage.

3 votes

0 votes

Cela fonctionne si vous suivez une astuce simple : devio.wordpress.com/2014/12/03/

28voto

Mathieson Points 516

El Extension de Resharper le fera pour vous.

Cette extension prend en charge Visual Studio 2005 à 2017.

Si le compilateur n'inclut pas les assemblages inutilisés, les déclarations d'utilisation et les références superflues ralentissent Visual Studio et Intellisense, car les outils doivent prendre en compte davantage de code.

15 votes

Que j'ai trouvé beaucoup de références inutilisées dans notre projet - mais un grand nombre d'entre elles étaient vraiment utilisées... Donc je ne fais pas confiance à Resharper pour les références.

8 votes

Resharper consomme des tonnes de mémoire dans les gros projets lorsqu'il y a beaucoup de références, ce qui finit par faire planter VS.

2 votes

@eraj Les éditions VS Express ne supportent pas les extensions, prenez l'édition gratuite Community, qui supporte les extensions comme ReSharper.

21voto

Jehof Points 14720

Dans un projet Visual Basic, il est possible de supprimer les "références inutilisées" (Project-->References-->Unused References). En C#, cette fonction n'existe pas.

La seule façon de le faire dans un projet C# (sans autres outils) est de supprimer les éventuels assemblages inutilisés, de compiler le projet et de vérifier si des erreurs se produisent pendant la compilation. Si aucune erreur ne se produit, vous avez supprimé un assemblage inutilisé. ( Voir mon billet )

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

2 votes

Dans VS 2008/2010, il y a une option de menu par clic droit pour supprimer ou supprimer et trier les utilisations.

13 votes

@JohnB : Bien sûr, vous avez raison, mais sa question concerne les références (aux assemblages) et non les utilisations (des espaces de noms).

0 votes

VS2012 : menu:Projet->Propriétés->Références->Références inutilisées.

16voto

Habib Points 93087

Pour quiconque vient ici à la recherche de Visual studio 2012 :

Télécharger et installer Assistant de référence pour Visual Studio 11

Plus tard, vous pourrez le faire :

enter image description here

1 votes

Reference Assistant pour Visual Studio 11 semble être inexact, il m'a montré un tas de références inutilisées dont je savais qu'elles étaient en fait utilisées (installées via Nuget).

1 votes

Ne fonctionne pas avec le projet MVC. Il supprime les DLL essentielles comme .Helpers et .WebPage.

0 votes

Oui, cela m'est revenu en pleine figure en utilisant un programme WPF C#.

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