2008-09-18 4 views
13

Sur les projets plus longs et/ou de plus longue durée, j'ai tendance à référencer de nombreux assemblys et espaces de noms, et souvent je supprime des fonctionnalités plus tard ou les déplace dans un projet différent. Je me demande juste, est-il un moyen de vérifier chaque projet (diable, chaque fichier .cs) dans toute ma solution Visual Studio et obtenir une liste de tous les assemblys et espaces de noms référencés qui ne sont pas réellement utilisés et peuvent être enlevé? Je sais que ReSharper peut le faire pour un seul fichier de code, mais je n'ai pas vu une option pour vérifier tous les fichiers ou pour vérifier les assemblys inutiles. En utilisant Visual Studio 2005 et 2008 Professional si cela est important.Visual Studio: détection des assemblages inutiles

Editer: Merci pour l'instant. Le problème avec ReSharper ou "Remove et Readd si la construction se brise" est que c'est assez fastidieux sur chaque fichier et assemblage (Mon projet a environ 120 fichiers .cs dans 7 assemblages, et référence un total de 18 assemblages en dehors de la solution), Donc, idéalement, je cherche quelque chose "en un clic". Big points de bonus pour une manière automatique qui peut être utilisé dans buildscripts pour générer un rapport :)

+0

Serait bien si la question était en termes d'outils gratuits, pas seulement des outils. Il m'arrive d'avoir re-chargeur donc la solution ci-dessous est bonne, mais quand même ... – Oskar

+0

Resharper a récemment fait une licence personnelle moins chère. Je pense que c'est 134 € pour C# maintenant. Les outils gratuits seraient bien sûr bien sûr (si MSBuild pouvait le faire ça par honkey-dorey!), Mais je cherche principalement quelque chose qui marche en premier :) –

+0

Connexe: http://stackoverflow.com/questions/81597/ remove-unused-references-using-visual-studio –

Répondre

5

Resharper fera pour vous et vous pouvez le configurer dans l'option code propre que vous pouvez exécuter la solution large; o)

0

Oui, je ne pense pas qu'il y en ait un. Je viens de supprimer certains je ne pense pas sont nécessaires alors construire:/

BTW. cela continuera à utiliser des erreurs. Vous pouvez utiliser le Visual Studio Power commands pour enlever et trier usings, donc faire d'abord, puis supprimer des ensembles aléatoires: D

0

Tout profileur de code décent fera cela pour vous. J'aime personnellement DevPartner.

3

Si vous avez ReSharper installé, vous pouvez cliquer avec le bouton droit de la souris sur une référence dans l'Explorateur de solutions et cliquer sur Rechercher le code dépendant. S'il revient avec une boîte de dialogue de résultats, vous utilisez cette référence/cet assemblage. Si vous obtenez le message "Code dépendant du module nom du module introuvable." Ensuite, vous devriez pouvoir supprimer cette référence/cet assemblage car il n'est pas utilisé.

1

Comme cela a été mentionné par les réponses précédentes, Resharper fonctionne bien pour cela ainsi qu'une variété d'autres cas tels que les moyens de rendre le code plus propre et de générer certaines choses pour vous. La meilleure façon de vraiment comprendre tous les avantages de Resharper est de télécharger le procès, d'imprimer un Keymap Cheatsheet et de le coller à côté de vous où vous développez.

En bref, il résout ce problème mais il fait bien plus que ça.

0

Il ne se débarrassera pas des références dans le code à vos assemblages référencés (je pense), mais vous pouvez aller aux propriétés de chacun de vos projets, à des références, et cliquez sur "Références inutilisées ..." . Visual Studio vous donne ensuite la possibilité de les supprimer directement.

Cependant, aucun moyen de le faire au niveau de la solution.

4

Si vous avez ReSharper puis, sélectionnez la solution, faites un clic droit et sélectionnez le code de nettoyage. Resharper va ensuite parcourir chaque fichier de code dans la solution. En ce qui concerne la suppression des références de projet, lors de l'exécution du compilateur, il n'ajoutera pas la référence si aucun code n'utilise cette DLL.

2

(Permuté here) Étant donné que VisualStudio (ou est-il 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 de la csproj, et compare cela avec les Assemblées référencées détectées par réflexion sur la sortie du projet.

Si vous êtes motivé ...

3

Je trouve cette question lors de la recherche dans Google et la recherche d'un moyen de supprimer inutilisés « Utilisation » des déclarations de mon code.

Le refactor est génial, mais il n'est pas disponible pour moi. Cependant, il s'avère que Visual Studio 2008 le fait par lui-même.

Voici les étapes:

  1. Charger le code dans Visual Studio.
  2. Cliquez avec le bouton droit n'importe où sur la page de codes.
  3. Cliquez sur "Organiser les utilisations" dans le menu.
  4. Cliquez sur "Supprimer" usings inutilisés

Terminé. Je me rends compte que cela ne répond pas à la question initiale (le faire en masse pour un projet entier) mais cela répond à ma question.

+0

cela est également disponible dans Visual Studio 2010 –

1

La suppression des références inutilisées est une fonctionnalité que Visual Studio 2008 prend 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 cette fonctionnalité ainsi vous pouvez voter ma suggestion.

+0

Merci d'avoir ouvert la suggestion sur connect, pas assez de gens ont mis l'effort pour le faire. Aussi je me demande s'il y a de toute façon à obtenir à cette fonctionnalité cachée par l'utilisation d'une macro pour un projet C#. – jpierson