2012-03-27 5 views
7

Недавно я начал использовать Code Analysis для своих проектов в Visual Studio. Я создал специальный набор правил для использования со всеми моими проектами, которые включают два набора правил, определенных Microsoft. Я работал над интеграцией FxCop в процесс сборки CI, чтобы сбой сборки, которые не передают все правила. Что действительно странно для меня, так это то, что я не могу использовать свой набор правил, чтобы определить, какие правила FxCop сканирует с кодом. Как сделать так, чтобы правила анализа кода Visual Studio соответствовали правилам FxCop?FxCop и правила анализа кода

+0

Я что-то упускаю из-за чего-то или нет способа делиться одними и теми же правилами в автономном режиме FxCop и Code Analysis в Visual Studio? !!!! – Chris

+0

Кажется, что у вас что-то не хватает. Как вы пытаетесь запустить FxCop из своей сборки CI? –

+0

Я запускаю его с помощью TeamCity, который запускает FxCopCmd.exe. У меня есть файл проекта FxCop, в котором перечислены цели и отдельные правила списков FxCop, но, похоже, нет простого способа использовать те же правила, что и для анализа кода в Visual Studio. Все работает, просто нет никакого прямого способа совместного использования правил между автономным FxCop и Code Analysis в VS2010. – Chris

ответ

8

У вас уже есть файл набора правил, который, как я полагаю, вы выяснили, как интегрироваться в ваши проекты и использовать через Visual Studio.

Вы можете использовать этот же набор правил файл в FxCopCmd.exe:

FxCopCmd.exe /out:Violations.xml /ruleset:=Custom.ruleset /file:MyAssembly.dll 

Я сделал это с помощью Дженкинс и она работает просто отлично. Запустите FxCopCmd.exe без аргументов, и вы должны увидеть описания всех доступных ключей командной строки.

+1

Очень странно, у меня было много проблем с поиском документации для опции/ruleset, но это было трюк. К счастью, у меня не было чего-то :-). – Chris

+1

Можете привести пример синтаксиса файла набора правил. Мне не повезло, что это сработало. – mikelong

+0

@mikelong: Синтаксис использования файлов набора правил указан в моем ответе. В чем конкретно проблема? – Bernard

3

Для нашей сборки CI у нас есть специальная конфигурация сборки (в дополнение к стандартным отладкам и выпуску), которая включает в себя анализ текущего кода (задача «RunCodeAnalysis» MSBuild, как я помню) и параметр «Лечить предупреждение как ошибку». Таким образом, сборка завершается с ошибкой, если у нас есть ошибка FxCop, и она использует то же правило, что и VS. Таким образом, вам не нужно использовать FxCopCmd и делиться наборами правил. Но вам нужно вручную добавить эту конфигурацию сборки в каждый проект вашего решения.

Смежные вопросы