* Nota: consulte http://www.jetbrains.net/devnet/message/5244658 para obtener 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 referencias de un proyecto de Visual Studio a otros proyectos / ensamblajes que no están en uso?" El cartel quiere que los ensamblajes ya no aparezcan como parte del resultado de la compilación.
En este caso, ReSharper puede ayudarlo a identificarlos , pero debe eliminarlos usted mismo.
Para hacer esto, abra Referencias en el Navegador de soluciones, haga clic con el botón derecho del mouse en cada ensamblaje referenciado y seleccione "Buscar código dependiente". Ver:
http://www.jetbrains.com/resharper/features/navigation_search.html#Find_ReferencedDependent_Code
Obtendrá:
Una lista de las dependencias de esa referencia en una ventana del navegador, o
Un cuadro de diálogo que le dice "No se encontró el código dependiente 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 tiene que hacerlo "manualmente", es decir, una 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 la salida de su compilación (generalmente, 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:
Identifica las cláusulas using 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 (por defecto) en el archivo y ReSharper proporcionará una pista para eliminarlo:
http://www.jetbrains.com/resharper/features/code_analysis.html#On-the-fly_Error_Detection
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 ensamblaje, por ejemplo, a través de la reflexión o un ensamblaje que se carga dinámicamente en tiempo de ejecución y se accede a través de una interfaz, no lo detectará. No hay sustituto para comprender su base de código y las dependencias del proyecto mientras trabaja en su proyecto. Encuentro las características de ReSharper muy útiles.