Управление правилами анализа кода Microsoft и StyleCop на уровне решения - PullRequest
0 голосов
/ 18 октября 2018

Я пытаюсь провести анализ кода в наших проектах, поэтому я начал с решения как для .NET Framework, так и для проектов .NET Standard.

Я следовал этому учебнику , ноПодводя итог, вот что я сделал:

  • Добавлен файл SolutionName.ruleset на уровне решения
  • Добавлен файл stylecop.json на уровне решения и ссылка на этот файл как ссылкав каждом проекте
  • Установлено StyleCop.Analyzers 1.1.0-beta009 Пакет Nuget для каждого проекта
  • Установлено Microsoft.NetCore.Analyzers в проектах .NET Standard и Microsoft.NetFramework.Analyzers для проектов .NET Framework

Во-первых, Visual Studio выглядит так глючно, но, возможно, это из-за какой-то черной магии, которую я не понимаю.

Если я нажму на файл набора правил в обозревателе решений, я немного поиграю с галочкой и-выделение нескольких флажков каждой группы правил и повторная сборка, чтобы увидеть изменения в окне списка ошибок, но через короткое время он больше не работает.Я даже пытаюсь отменить выбор, построить заново, и все мои предупреждения все еще здесь.Единственный способ заставить их исчезнуть - закрыть Visual Studio.

Как показано на скриншоте, я израсходовал проект библиотеки .NET Standard под названием ConfigLibrary, чтобы убедиться, что у него есть несколько связанных анализаторов.

enter image description here

Проблема в том, что все эти правила, похоже, берутся из DLL пакета Nuget C:\Users\user\.nuget\packages\stylecop.analyzers\1.1.0-beta009\analyzers\dotnet\cs\StyleCop.Analyzers.dll.

Если я отменил выбор правил StyleCop.Analyzersв моем файле правил он ничего не делает, и если я ищу эти коды правил с помощью текстового поля поиска, он показывает, что они не выбраны.Но в конце концов эти правила все еще применяются ...

Когда я пытаюсь удалить пакет StyleCop.Analyzers Nuget для всех проектов, я не получаю все эти предупреждения, даже когда правила выбраны вмой файл набора правил.

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

enter image description here

Итак, как правильно обрабатывать некоторые правила анализа кода в решенииуровень для проектов .NET Framework и .NET Core?

Как избежать того, чтобы библиотеки DLL анализатора переопределяли мои правила, определенные в моем файле набора правил?Есть ли обходной путь, чтобы Visual Studio правильно обновляла применяемые правила?Build, Rebuild и Run code analysis on solution все глючат, только перезапуск Visual Studio работает, но это своего рода тяжелый обходной путь, особенно со всеми этими правилами ...

Это я не понимаю базовую концепцию илия сталкиваюсь с некоторыми странными ошибками в .NET Core?Спасибо

1 Ответ

0 голосов
/ 05 июля 2019

Найдите файл набора правил и скопируйте его в свой репозиторий, переименовав его в «My Rules.ruleset» или что-то в этом роде.

Например, возьмите вот такой:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Team Tools\Static Analysis Tools\Rule Sets\MinimumRecommendedRules.ruleset

Установите пакет для проектов, которые вы хотите проверить в соответствии с вашими правилами.

Для всех этих проектов:

  • Перейдите к свойствам, страница CodeAnalysis
  • Открытьраскрывающийся список «Запустить этот набор правил:» и выберите «».
  • Выберите файл набора правил.
  • Добавьте файл набора правил в свое решение и откройте его.
  • Настройте свои правила.
  • Постройте!
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...