Question

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 de vs 2008, mais cela ne supprime pas la référence réelle de vos projets. La dll référencée sera toujours copiée dans votre paquet bin / setup.

Était-ce utile?

La solution

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

En lisant les messages, il semble y avoir une certaine confusion quant à la question initiale. Laissez-moi tenter ma chance.

L'article d'origine pose en réalité la question suivante: "Comment identifier et supprimer des références d'un projet Visual Studio vers d'autres projets / assemblys qui ne sont pas utilisés?" L'affiche souhaite que les assemblages n'apparaissent plus dans le cadre de la sortie de la construction.

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

Pour ce faire, ouvrez le navigateur de solution de références dans le navigateur de solution, cliquez avec le bouton droit de la souris sur chaque assemblage référencé, puis sélectionnez "Rechercher le code dépendant". Voir:

http://www.jetbrains.com/resharper/features/navigation_search. html # Find_ReferencedDedependent_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 que "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 le supprimer de votre projet.

Bien que vous deviez utiliser "manuellement", c’est-à-dire une référence à la fois, le travail sera fait. Si quelqu'un a automatisé cela d'une manière ou d'une autre, j'aimerais savoir comment cela a été fait.

Vous pouvez pratiquement ignorer ceux du .NET Framework car ils ne sont normalement pas copiés dans votre sortie de construction (généralement - bien que cela ne soit pas nécessairement vrai pour les applications Silverlight).

Certaines publications semblent répondre à la question: "Comment puis-je supprimer les clauses (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 manières:

  1. Identifie les clauses using non utilisées pour vous lors de la détection d'erreur à la volée. Ils apparaissent sous forme d’avertissements d’inspection de code - le code apparaîtra en gris (valeur par défaut) dans le fichier et ReSharper fournira un indice pour le supprimer:

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

  2. vous 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. Par conséquent, si vous avez une référence dynamique à l'assemblage (disons par réflexion ou par un assemblage chargé dynamiquement au moment de l'exécution et accessible via une interface), cela ne le détectera pas. Rien ne remplace l'algorithme de comprendre votre code. base et les dépendances du projet pendant que vous travaillez sur votre projet. Je trouve les fonctionnalités de ReSharper très utiles.

Autres conseils

vous pouvez utiliser l'extension " Supprimer les références inutilisées " que j'ai écrite:

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

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

J'ai ouvert une suggestion sur Microsoft Connect pour que cette fonctionnalité soit également appliquée aux projets C #:

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

Si vous aimez aussi cette fonctionnalité, votez peut-être sur ma suggestion.

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

  

Résumé

     

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

Resharper le fera pour vous (et bien plus encore!)

ReSharper 6.1 inclura les fonctionnalités suivantes:

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

-Retirer les références non utilisées: refactoring rapide pour supprimer les références d'assemblages redondants.

-Safe supprime les références d'assemblage: supprime les références d'assemblage si elles sont toutes redondantes. Sinon, supprime les utilisations et ne peut supprimer que les références d'assemblages redondants de la liste sélectionnée.

Je l'ai fait sans extension dans le VS 2010 Ultimate Architecture - > Générer un graphe de dépendances > Par assemblage, affiche les assemblages utilisés et les références inutilisées supprimées manuellement.

J'ai une réponse gratuite qui fonctionne dans toutes les versions de Visual Studio et toutes les versions de Framework. Il ne supprime pas les références non utilisées, mais les identifie.

Vous pouvez utiliser Telerik JustDecompile sur votre dll de projet. Ouvrez simplement la dll dans JustDecompile et allez sous Références pour voir ce qui est réellement utilisé dans la dll compilée.

 entrer la description de l'image ici

Etant donné que VisualStudio (ou msbuild?) détecte les références non utilisées et ne les inclut pas dans le fichier de sortie, vous pouvez écrire un script qui analyse les références du csproj et les compare aux assemblys référencés détectés par réflexion sur la sortie du projet.

Si vous êtes motivé ...

Je pense que ceux-ci sont copiés dans bin \, car dans le projet qui a supprimé la référence, il y a une référence à un autre projet qui a la même référence ...

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top