2011-02-18 31 views
7

? Hay alguna razón para que Visual Studio no elimine las referencias no utilizadas (para proyectos y ensamblajes) en proyectos C# y C++ mientras que es posible hacerlo desde un Proyecto de Visual Basic (see here)?¿Por qué no es posible eliminar referencias no utilizadas en C#

Sé que puede hacerlo con otras herramientas como Resharper, me preguntaba si había alguna razón técnica para no poder hacer esto en los proyectos C# y C++? O simplemente Microsoft elegir que funcione de esa manera. Parece ser una característica bastante útil.

Respuesta

10

Tenga en cuenta que el compilador caerá automáticamente cualquier referencia no utilizados del conjunto, por lo que en el conjunto de nivel metadatos esto es redundante. Luego se convierte en un problema de IDE/herramientas. ¿Sería imposible? no (aunque obviamente necesitaría conservar cualquiera que esté marcado para copiar local, para asegurar que se implemente). Probablemente podamos suponer, por lo tanto, que es simplemente un "tiempo para implementar frente a la utilidad" (en comparación con otras cosas más útiles que podrían hacerse).

Estoy seguro de que podría escribir una extensión IDE para que si quería; p

+0

¡útil saber! Soy uno de esos "muchachos" que insiste en eliminar las referencias no utilizadas :) –

+1

¡Buen punto! Lo sospeché, pero no estaba del todo seguro. Sin embargo, en mi opinión, tiene influencia en la descripción general de la dependencia en VS y tiene un efecto sobre qué proyectos se crean al compilar un proyecto, etc. –

0

Esta funcionalidad está ahí para VB (a través del botón "Referencias no utilizados" en la página de propiedades Referencias) .Pero es el caso de CSharp, por ejemplo, un usuario podría agregar una referencia a un ensamblaje para copiarlo en el directorio de salida. Podrían estar utilizando el ensamblaje por reflexión en lugar de compilar contra él; en tales casos, no hay forma de que VS detecte que dicho ensamblaje se "usa". Entonces, diseñar dicho algoritmo no es 100% exitoso. Pero el indicador es una opción que el conjunto marca como "no utilizado" (sin embargo, el usuario aún tendría la opción de eliminar el ensamblaje de la lista de referencias).

Eliminar los espacios de nombres no utilizados puede hacer un poco de trabajo para lograr esto.

+2

La bandera "Copiar local" en la referencia debe cumplir el primer bit ... –

1

Encontré this sugerencia en Microsoft Connect. Parece que Microsoft realmente piensa que es una buena idea pero que simplemente no tiene el "tiempo" (léase: prioridad) para implementarla. ¡Demasiado!

Cuestiones relacionadas