2011-01-18 14 views
10

Utilizamos las supresiones globales de FxCop para suprimir las infracciones de reglas encontradas en el código anterior. Por código antiguo me refiero al código que se escribió algunas veces años antes de activar el análisis del código. Arreglamos las violaciones en el nuevo código. No podemos corregir las violaciones en el código anterior de una vez, así que usamos supresiones.¿Hay alguna manera de identificar las supresiones de mensajes FxCop no utilizadas o obsoletas?

Con el tiempo, nuestros archivos de supresión global se han hinchado. A menudo, cuando una firma ha cambiado en un método antiguo, la supresión anterior deja de ser válida porque ya no coincide con el código. Creamos nuevas supresiones para ignorar la antigua violación, pero a menudo los antiguos atributos de SuppressMessage se quedaron atrás.

¿Alguien sabe cómo identificar estas declaraciones SupressMessage que no coinciden con el código? En ese caso, ¿alguien sabe cómo identificar los atributos de SuppressMessage que no son válidos porque no hay una infracción que suprimir?

Estoy pensando que puede haber un compilador o mensaje de advertencia o log de FxCopCmd que pueda identificar las supresiones no utilizadas. Si no es así, ¿alguien sabe de un script o extensión de VS que lo hace?

Gracias.

+0

Espero que planee eliminar eventualmente todas estas supresiones. Encuentro que desordenan el código si se usan demasiado. – Bernard

+0

@Bernard: las supresiones globales no están dentro de los archivos de su clase, por lo que no las verá a menos que vaya a buscarlas. El problema es cuando tratas de encontrar el que quieres eliminar o modificar. – Pedro

+0

@Pedro: Estás en lo cierto. Pero también puedes suprimir las advertencias en el nivel de método, lo que no recomendaría hacer. – Bernard

Respuesta

2

Puede usar la aplicación independiente Ux FxCop para esto. Agregue la columna "Seen la última ejecución" a la pestaña de resultados "Excluido en la fuente". Después del análisis, esta columna mostrará un valor falso para las supresiones en origen para las cuales no se encontró una infracción correspondiente durante la ejecución del análisis. Para maximizar la confiabilidad de los resultados, debe asegurarse de estar utilizando el mismo conjunto de conjuntos de reglas para el análisis que usa cuando ejecuta el análisis desde Visual Studio.

BTW, si le gustaría poder romper su construcción cuando se encuentran supresiones "obsoletas", le recomendamos votar en https://connect.microsoft.com/visualstudio/feedback/details/277253/add-mechanism-for-detecting-unnecessary-suppressmessageattribute-instances.

+0

Gracias, voy a intentarlo ahora. –

+1

El enlace parece estar roto, y no pude encontrarlo. ¿Podrías actualizar tu publicación? – julealgon

Cuestiones relacionadas