Pregunta

¿Cómo puedo encontrar y eliminar referencias no utilizadas en mis proyectos?

Sé que puedes eliminar fácilmente las declaraciones de uso en vs 2008, pero esto no elimina la referencia real en tus proyectos.El dll al que se hace referencia aún se copiará en su paquete bin/setup.

¿Fue útil?

Solución

*Nota:ver http://www.jetbrains.net/devnet/message/5244658 para otra versión de esta respuesta.

Al leer las publicaciones, parece que hay cierta confusión en cuanto a la pregunta original.Déjame intentarlo.

La publicación original realmente hace la pregunta:"¿Cómo identifico y elimino las referencias de un proyecto de Visual Studio a otros proyectos/ensamblajes que no están en uso?" El póster quiere que los conjuntos ya no aparezcan como parte de la salida de compilación.

En este caso, ReSharper puede ayudarte identificar ellos, pero tienes que eliminar ellos mismos.

Para hacer esto, abra las Referencias en el Explorador de soluciones, haga clic con el botón derecho del mouse en cada ensamblaje al que se hace referencia y seleccione "Buscar código dependiente".Ver:

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

Obtendrás:

  1. Una lista de las dependencias de esa Referencia en una ventana del navegador, o

  2. Aparece un cuadro de diálogo que le indica "No se encontró el código que depende del módulo XXXXXXX".

Si obtiene el segundo resultado, puede hacer clic con el botón derecho del mouse en la Referencia, seleccionar Eliminar y eliminarla de su proyecto.

Si bien tienes que hacerlo "manualmente", es deciruna referencia a la vez, hará el trabajo.Si alguien ha automatizado esto de alguna manera, me interesa saber cómo se hizo.

Puede ignorar prácticamente los que están en .Net Framework, ya que normalmente no se copian en el resultado de su compilación (normalmente, aunque no necesariamente es cierto para las aplicaciones Silverlight).

Algunas publicaciones parecen responder a la pregunta:"¿Cómo elimino las cláusulas de uso (C#) de un archivo de código fuente que no son necesarias para resolver ninguna referencia dentro de ese archivo?".

En este caso, ReSharper ayuda de dos maneras:

  1. Identifica cláusulas de uso no utilizadas durante la detección de errores sobre la marcha.Aparecen como Advertencias de inspección de código: el código aparecerá atenuado (de forma predeterminada) en el archivo y ReSharper proporcionará una sugerencia para eliminarlo:

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

  2. Le permite eliminarlos automáticamente como parte del proceso de limpieza de código:

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

Finalmente, tenga en cuenta que ReSharper realiza análisis de código estático en su solución.Por lo tanto, si tiene una referencia dinámica al ensamblado, digamos a través de la reflexión o un ensamblado que se carga dinámicamente en tiempo de ejecución y al que se accede a través de una interfaz, no la captará. No hay sustituto para comprender su código base y las dependencias del proyecto mientras trabaja en su proyecto.Las funciones de ReSharper me parecen muy útiles.

Otros consejos

puedes usar el 'Eliminar referencias no utilizadas' extensión escribí:

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

Eliminar referencias no utilizadas es una característica que Visual Studio 2008 ya admite.Lamentablemente, sólo para proyectos VB .NET.

Abrí una sugerencia en Microsoft Connect para obtener esta función también para proyectos de C#:

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

Si también te gusta esta función, puedes votar mi sugerencia.

Prueba este: Asistente de referencia

Resumen

El asistente de referencia ayuda a eliminar referencias no utilizadas de los proyectos C#, F#, VB.NET o VC ++/CLI en Visual Studio 2010.

Reafilador hará esto por ti (¡y mucho más!)

ReSharper 6.1 incluirá estas características:

-Optimizar referencias:analice sus referencias de ensamblado y sus usos en el código, obtenga una lista de referencias redundantes y elimínelas.

-Eliminar referencias no utilizadas:Refactorización rápida para eliminar referencias de ensamblaje redundantes.

-Eliminación segura de referencias de ensamblaje:eliminará las referencias de ensamblaje si todas son redundantes; de lo contrario, muestra los usos y solo puede eliminar las referencias de ensamblaje redundantes de la lista seleccionada.

Hice esto sin extensión en la arquitectura final VS 2010-> Generar gráfico de dependencia-> Por ensamblaje, muestra ensamblados usados ​​y referencias no utilizadas manualmente.

Tengo una respuesta gratuita que funciona en cualquier versión de Visual Studio y en cualquier versión de Framework.No elimina las referencias no utilizadas, pero las identifica.

Puedes usar Telerik acaba de descompilar en el dll de su proyecto.Simplemente abra el dll en JustDecompile y vaya debajo References para ver qué se usa realmente en el dll compilado.

enter image description here

Dado que VisualStudio (¿o es msbuild?) detecta referencias no utilizadas y no las incluye en el archivo de salida, puede escribir un script que analice las referencias del csproj y las compare con los ensamblajes referenciados detectados por reflexión en el resultado del proyecto.

Si estás motivado...

Creo que están copiados en bin\, porque en el proyecto que eliminó la referencia tiene referencia a otro proyecto que tiene la misma referencia...

Si sabes qué referencias no se utilizan, puedes eliminarlas manualmente.
En el Explorador de soluciones, haga clic derecho en la referencia en el Referencias nodo y luego haga clic en Quitar.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top