visual tutorial studio references para descargar configurar compile community code c# .net visual-studio-2010 visual-studio code-cleanup

tutorial - visual studio code compile c#



Eliminar código no utilizado en Visual Studio (3)

Como señaló @Ergwun, la herramienta NDepend puede ayudar a encontrar métodos, campos y tipos no utilizados.

Para elaborar un poco, NDepend propone escribir Regla de código sobre la consulta LINQ (CQLinq) . Se proponen alrededor de 200 reglas de código predeterminadas , 3 de ellas dedicadas a la detección de código muerto / no utilizado

Básicamente, una regla de este tipo para detectar métodos no utilizados se ve así:

// <Name>Dead Methods</Name> warnif count > 0 from m in Application.Methods where !m.MethodsCallingMe.Any() select m

Pero esta regla es ingenua y devolverá falsos positivos triviales. Hay muchas situaciones en las que nunca se llama a un método, pero no está sin usar (punto de entrada, constructor de clase, finalizador ...) esta es la razón por la que las 3 reglas predeterminadas están más elaboradas:

NDepend se integra en Visual Studio 2017,2015, 2013, 2012, 2010, por lo que estas reglas se pueden verificar / examinar / editar directamente dentro del IDE . La herramienta también puede integrarse en su proceso de CI y puede generar reports que muestren las reglas infringidas y los elementos de código culpables. NDepend también tiene una extensión de Servicios de Equipo VS.

Si hace clic en estos 3 enlaces anteriores hacia el código fuente de estas reglas, verá que los que se refieren a tipos y métodos son un poco complejos. Esto se debe a que detectan no solo los tipos y métodos no utilizados, sino también los tipos y métodos utilizados solo por los tipos y métodos muertos no utilizados (recursivo).

Este es un análisis estático , de ahí el prefijo Potencialmente en los nombres de las reglas. Si un elemento de código se usa solo a través de la reflexión, estas reglas podrían considerarlo como no utilizado, lo que no es el caso.

Además de usar estas 3 reglas, recomendaría medir la cobertura del código mediante pruebas y esforzarse por tener una cobertura completa. A menudo, verá que el código que no puede ser cubierto por las pruebas, es en realidad código no utilizado / muerto que se puede descartar de forma segura. Esto es especialmente útil en algoritmos complejos donde no está claro si una rama de código es accesible o no.

Descargo de responsabilidad: trabajo para NDepend.

En relación con esta pregunta: " Eliminar referencias no utilizadas (! =" Mediante ") ", me gustaría saber si existe una herramienta para eliminar clases, estructuras, delegados, etc. no utilizadas de una solución de Visual Studio.

Guión:

Tengo una solución de Visual Studio no organizada que consta de miles de:

  • Método nativo de importaciones
  • Estructuras
  • Delegados
  • Enumeraciones

En lugar de rastrear cada archivo haciendo clic en "Buscar todas las referencias" y determinar si el código se está utilizando en algún lugar, ¿existe algún mecanismo por el que pueda eliminar fácilmente los archivos de código redundantes?

Ejemplo:

//This class contains a method called getRandomValue which returns type RANDOM public class NativeMethods { [DllImport("random.dll")] public static extern RANDOM getRandomValue(); } //This is the RANDOM object as referenced by getRandomValue(); [StructLayout(LayoutKind.Sequential)] public struct RANDOM { uint a; uint b; uint c; } //This is redundant since nothing is referencing it. [StructLayout(LayoutKind.Sequential)] public struct MESSAGE { IntPtr sender; IntPtr recipient; char[] mText; }

Nota personal:

Mi intuición es que esto va a ser complicado ya que, a diferencia de Java, los nombres de los objetos no tienen que ser idénticos al nombre del archivo, y varias declaraciones de objetos pueden residir en un solo archivo, sin embargo, en este caso (mi escenario), cada objeto es declarado dentro de su propio archivo (con un nombre idéntico).


Hay varias herramientas que puede utilizar para hacer esto:

FxCop solo encontrará el código interno y privado no utilizado. Por supuesto, si se asegura de que solo exponga públicamente el código que debe ser accesible fuera de su ensamblaje, entonces debería ser bueno.


ReSharper es la mejor opción para limpiar su código.

Puedes usarlo gratis gracias al programa ReSharper Early Access .