100 votes

Supprimer les références inutilisées (!= "using")

Comment trouver et supprimer les références inutilisées dans mes projets ?

Je sais que vous pouvez facilement supprimer les instructions using dans vs 2008, mais cela ne supprime pas la référence réelle dans vos projets. La dll référencée sera toujours copiée dans votre paquetage bin/setup.

0 votes

Merci. Malheureusement, pas de réponse à ce que je cherchais...

0 votes

55voto

jlo Points 755

*Note : voir http://www.jetbrains.net/devnet/message/5244658 pour une autre version de cette réponse.

En lisant les messages, il semble qu'il y ait une certaine confusion quant à la question initiale. Laissez-moi essayer de répondre.

Le message original pose vraiment la question : "Comment puis-je identifier et supprimer les références d'un projet Visual Studio à d'autres projets/assemblages qui ne sont pas utilisés ?" L'auteur veut que les assemblages n'apparaissent plus dans le résultat de la construction.

Dans ce cas, ReSharper peut vous aider à identifier mais vous devez supprimer vous-même.

Pour ce faire, ouvrez les références dans le navigateur de solutions, cliquez avec le bouton droit de la souris sur chaque assemblage référencé et choisissez "Find Dependent Code". Voir :

http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code

Vous aurez soit :

  1. Une liste des dépendances de cette référence dans une fenêtre de navigateur, ou

  2. Une boîte de dialogue vous indiquant "Le code dépendant du module XXXXXXX n'a pas été trouvé".

Si vous obtenez le deuxième résultat, vous pouvez alors cliquer avec le bouton droit de la souris sur la référence, sélectionner Supprimer, et la supprimer de votre projet.

Bien que vous deviez le faire "manuellement", c'est-à-dire une référence à la fois, cela fera l'affaire. Si quelqu'un a automatisé cette opération d'une manière ou d'une autre, je suis intéressé de savoir comment il l'a fait.

Vous pouvez pratiquement ignorer ceux qui se trouvent dans le .Net Framework, car ils ne sont normalement pas copiés dans votre sortie de compilation (généralement, mais pas nécessairement pour les applications Silverlight).

Certains messages semblent répondre à la question : "Comment puis-je supprimer les clauses d'utilisation (C#) d'un fichier de code source qui ne sont pas nécessaires pour résoudre les références dans ce fichier".

Dans ce cas, ReSharper peut vous aider de plusieurs manières :

  1. Identifie pour vous les clauses d'utilisation inutilisées lors de la détection des erreurs à la volée. Elles apparaissent sous forme d'avertissements d'inspection de code - le code apparaîtra en grisé (par défaut) dans le fichier et ReSharper fournira une astuce pour le supprimer :

    http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection

  2. Permet de les supprimer automatiquement dans le cadre du processus de nettoyage du code :

    http://www.jetbrains.com/resharper/features/code_formatting.html#Optimizing_Namespace_Import_Directives

Enfin, sachez que ReSharper effectue une analyse de code statique sur votre solution. Ainsi, si vous avez une référence dynamique à l'assemblage - par exemple par le biais de la réflexion ou d'un assemblage qui est chargé dynamiquement au moment de l'exécution et auquel on accède par une interface - il ne la détectera pas. Rien ne remplace la compréhension de votre base de code et des dépendances du projet au fur et à mesure que vous travaillez sur votre projet. Je trouve les fonctionnalités de ReSharper très utiles.

0 votes

Belle réponse détaillée. Ce qui est bizarre, c'est que même si vous savez que je ne fais pas référence aux instructions using (ce nettoyage est standard dans VS, je ne comprends pas pourquoi R# l'a réinventé), vous répondez d'abord à cette question. Pourriez-vous intervertir les deux ?

0 votes

Je le ferai. La fonctionnalité de ReSharper précède l'implémentation de Visual Studio. Elle reste telle qu'elle est réalisée grâce à leur fonction "autocorrection" - les Smart Tags sont désactivés lorsque vous avez ReSharper.

1 votes

Maintenant, ~4 ans plus tard, ReSharper 6.1 a obtenu cette fonctionnalité directement !

12voto

Spongman Points 1764

Vous pouvez utiliser l'option ' Supprimer les références inutilisées J'ai écrit "extension" :

http://visualstudiogallery.msdn.microsoft.com/9811e528-cfa8-4fe7-9dd1-4021978b5097

0 votes

Cette extension n'est pas publiée

1 votes

Au début, j'ai bien aimé ! Mais ensuite, avec des tests plus poussés, cela a supprimé les références dont j'avais besoin. Plus de détails sur l'échec sont ici : wpfsharp.com/2012/04/04/…

7voto

jbe Points 4629

La suppression des références inutilisées est une fonctionnalité que Visual Studio 2008 prend déjà en charge. Malheureusement, uniquement pour les projets VB .NET.

J'ai ouvert une suggestion sur Microsoft Connect pour obtenir cette fonctionnalité pour les projets C# également :

http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=510326

Si vous aimez aussi cette fonctionnalité, vous pouvez voter pour ma suggestion.

5voto

Leniel Macaferi Points 38324

Essaie celle-là : Assistant de référence

Résumé

Reference Assistant aide à supprimer les références inutilisées de C#, F#, VB.NET ou VC++/CLI dans Visual Studio 2010.

1 votes

Peut-être connaissez-vous une extension similaire pour vs 2012 ?

0 votes

@isxaker C'est maintenant une fonctionnalité intégrée de resharper.

4voto

Chris Canal Points 3219

ReSharper fera cela pour vous (et bien plus encore !)

0 votes

Resharper supprimera-t-il réellement la référence à la DLL dans le dossier Références ? Je ne pense pas qu'il le fasse.

1 votes

Je ne pense pas que ce soit le cas... Je pense qu'il supprime simplement l'instruction using pour un espace de nom que vous ne référencez pas. FWIW - Coderush offre la même fonctionnalité "et bien plus encore" :)

1 votes

Maintenant, ~4 ans plus tard, ReSharper 6.1 a obtenu cette fonctionnalité !

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