Supprimer les références (!= "utiliser")

Comment puis-je trouver et supprimer des 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 paquet bin / setup.

100
demandé sur Leniel Maccaferri 2008-09-17 13:55:41

11 réponses

*Remarque: reportez - 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. Permettez-moi de prendre un coup de couteau à elle.

Le post original pose vraiment la question: "Comment puis-je identifier et supprimer les références d'un projet Visual Studio vers d'autres projets / assemblages qui ne sont pas utilisés?"L'affiche veut que les assemblées n'apparaissent plus dans le cadre de la construire la sortie.

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

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

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

Vous obtiendrez soit:

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

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

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

Alors que vous devez le faire "manuellement", c'est-à-dire une référence à la fois, cela fera le travail. Si quelqu'un a automatisé cela d'une manière ou d'une autre, je suis intéressé à entendre comment cela a été fait.

Vous pouvez ignorez à peu près ceux du Framework. net car ils ne sont normalement pas copiés dans votre sortie de construction ( généralement - mais pas nécessairement vrai pour les applications Silverlight).

Certains messages semblent répondre à la question: "Comment supprimer les clauses using (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 aide de deux façons:

  1. Identifie les clauses d'utilisation inutilisées pour vous pendant le la mouche de détection d'erreur. Ils apparaissent comme des avertissements D'Inspection de Code - le code apparaîtra grisé (par défaut) dans le fichier et ReSharper fournira un indice pour le supprimer:

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

  2. Vous permet de les supprimer automatiquement dans le cadre du nettoyage du Code Processus:

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

Enfin, réalisez que ReSharper effectue une analyse de code statique sur votre solution. Donc, si vous avez une référence dynamique à l'assembly - par exemple par réflexion ou un assembly qui est chargé dynamiquement à l'exécution et accessible via une interface - il ne le récupérera pas. Il n'y a pas de substitut à la compréhension de votre base de code et les dépendances du projet lorsque vous travaillez sur votre projet. Je trouve les fonctionnalités de ReSharper très utiles.

55
répondu jlo 2014-11-21 10:00:20

Vous pouvez utiliser le 'Supprimer les Références' extension que j'ai écrit:

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

12
répondu Spongman 2011-05-11 08:39:20

Suppression des références inutilisées est une fonctionnalité que Visual Studio 2008 prend déjà en charge. Malheureusement, seulement pour les projets VB. net.

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

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

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

7
répondu jbe 2009-11-13 13:58:20

Essayez celui-ci: Assistant de référence

Résumé

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

5
répondu Leniel Maccaferri 2012-02-06 01:38:20

Resharper le fera pour vous (et tellement plus!)

4
répondu Chris Canal 2008-09-17 09:57:31

ReSharper 6.1 inclura ces fonctionnalités:

- optimiser les références: analysez vos références d'assemblage et leurs usages dans le code, obtenez la liste des références redondantes et supprimez-les.

- supprimer les références inutilisées: refactoring rapide pour supprimer les références d'assemblage redondantes.

- Safe delete on assembly references: supprime les références d'assemblage si elles sont toutes redondantes, sinon dispalise les usages et ne peut supprimer que les références d'assemblage redondantes du sélectionné liste.

4
répondu Kirill Skrygan 2011-11-15 09:17:52

Je l'ai fait sans extension dans le VS 2010 Ultimate Architecture - > générer un graphique de dépendance - > par Assembly, il montre les assemblys utilisés et les références inutilisées supprimées manuellement.

3
répondu mes 2012-10-28 10:29:17

J'ai une réponse gratuite qui fonctionne dans n'importe quelle version de Visual Studio et n'importe quelle version de Framework. Il ne supprime pas les références inutilisées, mais il les identifie.

Vous pouvez utiliser Telerik JustDecompile sur votre dll de projet. Il suffit d'ouvrir la dll dans JustDecompile et d'aller sous References pour voir ce qui est réellement utilisé dans la dll compilée.

entrez la description de l'image ici

1
répondu toddmo 2015-08-26 17:06:05

Étant donné que VisualStudio (ou est-ce msbuild?) détecte les références inutilisées et ne les inclut pas dans le fichier de sortie, vous pouvez écrire un script qui analyse les références hors du csproj, et compare cela avec les assemblys référencés détectés par reflexion sur la sortie du projet.

Si vous êtes motivé...

0
répondu Benjol 2008-10-23 07:21:07

Je pense que sont copiés dans bin\, parce que dans le projet qui a supprimé la référence ont référence o autre projet qui ont la même référence...

0
répondu Henry Martinez Q. 2014-12-08 18:44:11

Si vous savez quelles références ne sont pas utilisées, vous pouvez les supprimer manuellement.
Dans L'Explorateur de solutions, cliquez avec le bouton droit sur la référence dans le nœud Références, puis cliquez sur Supprimer.

0
répondu fat 2015-12-18 12:22:24