2008-09-18 11 views
13

En proyectos de mayor y/o larga ejecución, tiendo a hacer referencia a muchos ensamblados y espacios de nombres, y a menudo termino eliminando alguna funcionalidad más adelante o moviéndola a un proyecto diferente.Visual Studio: detección de ensamblajes innecesarios

Me pregunto, ¿hay alguna manera de verificar cada proyecto (diablos, cada archivo .cs) en mi solución completa de Visual Studio y obtener una lista de todos los ensamblados y espacios de nombres a los que se hace referencia que no se usan realmente ¿remoto? Sé que ReSharper puede hacerlo por un solo archivo de código, pero no vi una opción para verificar todos los archivos o para verificar los ensamblajes innecesarios.

Uso de Visual Studio 2005 y 2008 Professional si eso es importante.

Editar: Gracias hasta ahora. El problema con ReSharper o "Eliminar y leer si se rompe la construcción" es que es bastante tedioso en cada archivo y ensamblaje (Mi proyecto tiene aproximadamente 120 archivos .cs en 7 ensamblajes y hace referencia a un total de 18 ensamblajes fuera de la solución), idealmente estoy buscando algo "con un solo clic". Puntos de bonificación grandes de alguna manera automática que se pueden usar en las secuencias de comandos para generar un informe :)

+0

Sería bueno si la pregunta fuera en términos de herramientas gratuitas, no solo de herramientas. Sucede que tengo un reafilamiento así que la solución a continuación es buena, pero aún así ... – Oskar

+0

Resharper recientemente hizo una licencia personal más barata. Creo que ahora son 134 € para C#. Las herramientas gratuitas serían buenas, por supuesto (si MSBuild pudiera hacerlo, ¡lo haría por honkey-dorey!), Pero estoy buscando principalmente algo que funcione primero :) –

+0

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

Respuesta

5

Resharper va a hacer esto para usted y usted puede configurarlo en la opción código limpio que puede ejecutar una solución amplia; o)

0

Sí, no creo que haya ninguno. Solo borro algunos que no creo que sean necesarios, entonces construye:/

BTW. eso seguirá usando errores. Se puede utilizar el Visual Studio Power commands para eliminar y ordenar usings, por lo que hacer eso en primer lugar, a continuación, elimine los conjuntos de azar: D

0

Cualquier analizador de código decente lo hará por usted. Me gusta DevPartner personalmente.

3

Si tiene ReSharper instalado, desde el Explorador de soluciones puede hacer clic con el botón derecho en una referencia y hacer clic en Buscar código dependiente. Si vuelve con un diálogo de resultados, entonces está usando esa referencia/ensamblaje. Si aparece el mensaje "Código dependiente del módulo nombre del módulo no encontrado". Entonces debería estar bien para eliminar esa referencia/ensamblaje porque no se está utilizando.

1

Como se mencionó en las respuestas anteriores, Resharper funciona bien para esto, así como una variedad de otros casos, tales como formas de hacer código más limpio y generar ciertas cosas para usted. La mejor manera de descubrir realmente todas las ventajas de Resharper es descargar la versión de prueba, imprimir un Keymap Cheatsheet y pegarlo al lado de donde se está desarrollando.

En resumen, resuelve este problema pero hace muchísimo más que eso.

0

No eliminará ninguna referencia en el código de los ensamblados a los que hace referencia (creo), pero puede ir a las propiedades de cada uno de sus proyectos, acceder a Referencias y hacer clic en "Referencias no utilizadas ..." . Visual Studio le da la opción de eliminarlos allí mismo.

Sin embargo, no hay forma de hacerlo a nivel de solución.

4

Si tiene ReSharper entonces, seleccione la solución, haga clic derecho y seleccione el código de limpieza. Resharper revisará cada archivo de código en la solución.

En cuanto a la eliminación de referencias de proyectos, cuando se ejecuta el compilador no agregará la referencia si ningún código utiliza esa dll.

2

(Cruz-registrado desde here) Dado que VisualStudio (o se trata de MSBUILD?) Detecta referencias utilizadas y no los incluye en el archivo de salida, se puede escribir un script que analiza las referencias fuera de la csproj, y lo compara con los ensambles a los que se hace referencia detectados por reflexión en la salida del proyecto.

Si estás motivado ...

3

me encontré con esta pregunta durante la búsqueda en Google y en busca de una forma de eliminar sin utilizar "Uso de" declaraciones de mi código.

Refactor es genial, pero no está disponible para mí. Sin embargo, como resultado, Visual Studio 2008 hace esto por sí mismo.

Estos son los pasos:

  1. cargar el código en Visual Studio.
  2. Haga clic derecho en cualquier parte de la página de códigos.
  3. Haga clic en "Organizar usos" en el menú.
  4. Haga clic en "Eliminar usings no utilizados"

Done. Me doy cuenta de que esto no responde a la pregunta original (hacer esto en masa para un proyecto completo) pero responde mi pregunta.

+0

esto también está disponible en Visual Studio 2010 –

1

Quitar referencias no utilizadas es una característica que Visual Studio 2008 ya admite. Desafortunadamente, solo para proyectos VB .NET.

me han abierto una sugerencia en Microsoft Connect para obtener esta función para C# proyectos también:

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

Si te gusta esta función, así entonces es posible que voten mi sugerencia.

+0

Gracias por abrir la sugerencia para conectar, no hay suficientes personas que hagan el esfuerzo para hacerlo. También me pregunto si hay alguna forma de acceder a esta función oculta mediante el uso de una Macro para un proyecto de C#. – jpierson