Есть ли способ определить неиспользуемые или устаревшие подавления сообщений FxCop? - PullRequest
10 голосов
/ 18 января 2011

Мы используем глобальные подавления FxCop для подавления нарушений правил, обнаруженных в старом коде.Под старым кодом я имею в виду код, который был написан иногда за годы до того, как мы включили анализ кода.Мы исправляем нарушения в новом коде.Мы не можем исправить нарушения в старом коде сразу, поэтому мы используем подавления.

Со временем наши файлы глобального подавления стали раздутыми.Часто, когда подпись на старом методе изменилась, предыдущее подавление становится недействительным, поскольку оно больше не соответствует коду.Мы создали новые подавления, чтобы игнорировать старое нарушение, но часто старые атрибуты SuppressMessage оставались позади.

Кто-нибудь знает, как определить эти объявления SupressMessage, которые не соответствуют коду?В этом отношении кто-нибудь знает, как определить недопустимые атрибуты SuppressMessage, потому что нет нарушения для подавления?

Я думаю, что может быть предупреждение или сообщение FxCopCmd или сообщение журнала, которые могут идентифицировать неиспользованные подавления.Если нет, то кто-нибудь знает о скрипте или расширении VS, которое это делает?

Спасибо.

1 Ответ

2 голосов
/ 18 января 2011

Для этого вы можете использовать автономное приложение FxCop UI.Добавьте столбец «Последний просмотр» на вкладку результатов «Исключено из источника».После анализа в этом столбце будет отображаться ложное значение для любых подавлений в источнике, для которых соответствующее нарушение не было обнаружено во время анализа.Чтобы максимизировать надежность результатов, вы должны убедиться, что вы используете тот же набор сборок правил для анализа, который вы используете при запуске анализа из Visual Studio.

Кстати, если вы хотитебыть в состоянии сломать вашу сборку, когда найдены "несвежие" подавления, вы можете рассмотреть возможность голосования на https://connect.microsoft.com/visualstudio/feedback/details/277253/add-mechanism-for-detecting-unnecessary-suppressmessageattribute-instances.

...