Каковы различия между StyleCop и Code Analysis, когда речь идет о правилах каждого из них? - PullRequest
9 голосов
/ 25 января 2012

Подскажите, пожалуйста, в чем различия между правилами StyleCop и Code Analysis? Должно ли оно использоваться вместе или нет?

Спасибо.

Ответы [ 3 ]

13 голосов
/ 25 января 2012

Стиль полицейского по сути анализирует файл на предмет проблем с форматированием и других вещей, которые вы могли бы назвать «косметическими». Анализ кода фактически строит ваш код и проверяет скомпилированный IL времени выполнения на предмет характеристик того, как он ведет себя при запуске, и отмечает потенциальные проблемы времени выполнения.

Итак, они бесплатны, и вы прекрасно можете использовать их вместе.

8 голосов
/ 25 января 2012

Краткий ответ:

  • stylecop: принимает ваш исходный код в качестве входных данных и проверяет потенциальные проблемы стиля кода .Например: using директивы не упорядочены в алфавитном порядке ... и т. Д.
  • fxcop (теперь анализ кода): принимает скомпилированную сборку в качестве входных данных и проверяет возможные проблемы, связанные с к самому исполняемому файлу / dll, когда он будет выполнен .Например: в вашем классе есть член типа IDisposable, который не расположен должным образом.

Однако существуют некоторые правила, которые являются общими для обоих инструментов, например, правила, связанные с соглашением об именахдля открытых типов.

В любом случае, использование обоих - хорошая идея.

7 голосов
/ 06 февраля 2012

FxCop проверяет что написано .Он работает над скомпилированной сборкой.

StyleCop проверяет как написано .Он работает над разобранным исходным файлом, даже не пытаясь скомпилировать его.

Это приводит ко всем различиям.Например, FxCop не может проверить отступы, потому что они отсутствуют в скомпилированной сборке.А StyleCop не может выполнять проверки потока кода, потому что он не знает, как на самом деле выполняется ваш код.

...