Как избавиться от StyleCop

Кто-то из нашей команды установил StyleCop, и с тех пор все проекты, которые он загрузил и передал в систему контроля версий, отказываются загружаться, если не установлен stylecop.

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


person gbjbaanb    schedule 09.12.2010    source источник
comment
Вы удалили все ссылки на сборки StyleCop в своих проектах? Вы можете удалить эти ссылки через Visual Studio.   -  person Bernard    schedule 09.12.2010
comment
Я рекомендую вам по-прежнему использовать StyleCop, он добавляет ценность, но, возможно, вам следует использовать его извне, чтобы вам не нужно было вносить какие-либо изменения в ваши существующие проекты.   -  person Bernard    schedule 09.12.2010
comment
Я думал, что StyleCop — это инструмент для Visual Studio, который позволяет вам выделять правила, которые были нарушены в вашем исходном коде через IDE, зачем вам нужно добавлять ссылку на него из вашего проекта? Я использую StyleCop уже некоторое время и не видел, чтобы он что-то добавлял к моему проекту или исходным файлам.   -  person Piers Myers    schedule 29.01.2011
comment
@Piers: правила не обязательно выделяются в среде IDE. Если вы вставите две строки в каждый файл .csproj и поместите dll StyleCop в папку вашего проекта, нарушенные правила вызовут ошибки при компиляции ... независимо от того, компилируете ли вы в Visual Studio или с помощью MSBuild, и нет необходимости устанавливать его на каждый машина разработчика.   -  person Christian Specht    schedule 04.02.2011
comment
Пирс, я только что опубликовал ответ со ссылкой. Вы можете проверить ссылку, если вам интересно, как это работает.   -  person Christian Specht    schedule 04.02.2011
comment
@haarrrgh - спасибо, что прояснил это для меня. Я должен признать, что я использовал StyleCop только в сольном проекте и не делал интегрированную MSBuild.   -  person Piers Myers    schedule 04.02.2011
comment
Я пришел к этому вопросу, потому что, когда я удалял StyleCop и всякий раз, когда я загружал VS или проекты, он выдавал мне предупреждение о том, что пакет загружается неправильно. Я нигде не мог найти ответ, но решил его с помощью devenv /Setup и devenv /ResetSettings. Надеюсь, это поможет кому-то.   -  person MasterMastic    schedule 30.01.2013


Ответы (4)


Я отключил StyleCop, добавив следующую конфигурацию GlobalSettings в файл settings.stylecop в корне решения.

<StyleCopSettings Version="4.3">
  <GlobalSettings>
    <BooleanProperty Name="RulesEnabledByDefault">False</BooleanProperty>
  </GlobalSettings>
  ...
</StyleCopSettings>
person Mikael Engver    schedule 21.02.2014
comment
+1 - Спасибо за это! В проектах с открытым исходным кодом не следует использовать StyleCop. - person M.Babcock; 16.09.2014
comment
Можете ли вы вместо этого отметить это как ответ? Текущий отмеченный ответ на самом деле вообще не отвечает на вопрос, он просто разделяет мнение о stylecop. - person Marshall Conover; 04.08.2016
comment
@MarshallConover, да, только что увидел, через 3 года после вопроса и через 8 лет после того, как решение понадобилось :-) - person gbjbaanb; 28.04.2018
comment
@gbjbaanb лучше поздно, чем никогда. Спасибо за голосование. - person Mikael Engver; 28.04.2018

Зачем его удалять?
На мой взгляд, использование StyleCop — это хорошо.
Кажется, единственная проблема заключается в том, что член вашей команды неправильно настроил StyleCop.

Судя по вашему описанию, он хотел настроить StyleCop с интеграцией MSBuild: http://blogs.msdn.com/b/sourceanalysis/archive/2008/05/24/source-analysis-msbuild-Integration.aspx

Очевидно, он просто пропустил последний абзац «Командная разработка»: скопируйте файлы StyleCop в свой проект и зарегистрируйте их в системе управления версиями, поэтому вам не нужно устанавливать StyleCop на каждую машину разработчика. < em>(см. мою ссылку для более подробного описания)

Если вы сделаете это, StyleCop должен работать на каждой машине, независимо от того, установлен он или нет.

Мы также используем StyleCop таким же образом, и я думаю, что это самый простой способ его использования.
Мне просто нужно было вставить две строки в каждый файл .csproj и один раз проверить несколько файлов в системе управления версиями... и StyleCop просто работает при каждой компиляции на каждой машине (независимо от того, находится ли она на машине разработчика или на сервере сборки).

person Christian Specht    schedule 04.02.2011
comment
Стайлкоп не очень хорошая вещь. У нас не всегда есть контроль над кодом, с которым мы работаем — в частности, «основной» код, который у нас есть, написан другой командой в другой стране и… допустим, параметры stylecop по умолчанию создают всего несколько тысяч нарушений. и у них нет согласованной системы, поэтому мы либо живем с этими предупреждениями, либо избавляемся от них в нашем коде и просто возвращаемся к старомодному способу сделать наш код красивым без какой-либо «помощи». - person gbjbaanb; 04.02.2011
comment
которые оставляют меня с проблемой избавления от этих двух строк csproj - как только они появляются, они ошибаются, если у вас не установлен stylecop. (или более старая версия stylecop — поэтому, если сервер сборки имеет v1 и кто-то обновляет свою локальную копию, сервер сборки начинает выдавать ошибку. PiTA) - person gbjbaanb; 04.02.2011
comment
Вы можете отключить определенные правила в StyleCop. А включить StyleCop можно только для определенных проектов. Поэтому, если код другой команды нарушает слишком много правил, вы можете просто отключить Stylecop для их кода и оставить его включенным для своего. - person Christian Specht; 04.02.2011
comment
Что касается ошибки, если у вас не установлен stylecop: их не будет, если вы поместите файлы StyleCop в свой проект и проверите их в системе управления версиями. Взгляните на ссылку в моем ответе, в ней есть подробное описание (в последнем абзаце Team Development). - person Christian Specht; 04.02.2011
comment
проверить двоичные файлы stylecop в SCM и (я полагаю) получать их каждый раз при сборке?! Вы могли бы также установить его везде, а не управлять зависимостью. Эта ссылка на самом деле не дает хорошего ответа. Я бы все же скорее избавился от него — мы agile-мастерская, поэтому я бы предпочел общение для решения такого рода проблем, а не навязывание жесткого инструмента, который ломает сборку. - person gbjbaanb; 09.02.2011
comment
StyleCop побуждает людей документировать вещи, которые не нуждаются в документировании (например, свойства с очевидными именами, такими как фамилия), и не делает ничего для документирования сложного кода. Таким образом, это заставляет разработчиков пренебрегать важной документацией, препятствуя их рабочему процессу написания самого простого кода. Код также становится раздутым из-за ненужного форматирования, что ухудшает читабельность. - person NickG; 30.05.2013
comment
Я установил пакет StyleCop NuGet, думая, что это применимо только к одному проекту, который я могу просто удалить позже. К сожалению, анализаторы StyleCop повсеместно обнаруживались в каждом решении, хотя в большинстве проектов уже есть собственные анализаторы, и удаление пакета ничем не помогло. StyleCop также не был найден в программах удаления. - person Kyle Delaney; 14.03.2020

Stylecop скрывает настоящие предупреждения. Это тщеславие и зло.

Не используйте его.

Я обнаружил, что stylecop генерирует много тривиальных предупреждений, которые заглушают настоящие предупреждения. Обязательно используйте эти инструменты, но не заставляйте их быть включенными. Отсутствие предупреждений stylecop — бессмысленная метрика.

person Stephen    schedule 04.10.2012
comment
Как он скрывает настоящие предупреждения? - person MasterMastic; 30.01.2013
comment
Он скрывает настоящие предупреждения, потому что некоторые разработчики смотрят и говорят: «Смотри, никаких проблем с полицейскими!» несмотря на написание ужасного, неподдерживаемого спагетти-кода. - person Po-ta-toe; 21.02.2013
comment
Каждый инструмент должен использоваться в соответствии с его назначением. Stylecop не говорит, что ваш код в порядке, он говорит, что его форматирование соответствует набору правил. То же, что и автоматическое слияние в любой системе контроля версий (svn/git), никогда не говорит, что ваш код непротиворечив после слияния: он просто говорит, что все изменения были объединены вместе в соответствии с правилами слияния. Однако вы несете ответственность за обеспечение согласованности кода (например, все компилируется и модульные тесты проходят). - person Isantipov; 15.03.2013
comment
Я обнаружил, что stylecop генерирует много тривиальных предупреждений, которые заглушают настоящие предупреждения. Обязательно используйте эти инструменты, но не заставляйте их быть включенными. Отсутствие предупреждений stylecop — бессмысленная метрика. - person Stephen; 14.03.2014
comment
StyleCop — фантастический инструмент. Отключите предупреждения, с которыми вы не согласны. - person GaTechThomas; 25.03.2015

РАЗРАБОТКА НА ТЕСТИРОВАНИИ

Red -> Green -> Refactor

РАЗРАБОТКА НА ТЕСТИРОВАНИИ (С ПОМОЩЬЮ STYLECOP)

Red -> Red -> WTF? -> Red -> Red -> ...

Кроме того, из здесь:

Боб: Используя сопоставление с образцом, программа идентифицирует некрасивый код
Чарли: — и исправляет его!
Боб: Нет. Она печатает сообщение о каждом нарушении.
Чарли: Затем пользователь щелкает правой кнопкой мыши, чтобы исправить их всех?
Боб: Нет. Сообщение ругает их за «недопустимый интервал вокруг запятой».
Чарли: А затем объясняет, как пользователь может это исправить?
Боб: Нет, эта информация находится в отдельном document.
Чарли: В Google?
Боб: Нет.


Вот почему не используйте Stylecop.

person tom redfern    schedule 22.01.2014
comment
это может ухудшиться .... в документе Word Process_Build_Style_Instructions_001_06_A.doc, который содержит 1 гигантскую таблицу, которая хранится на sharepoint. - person gbjbaanb; 22.01.2014
comment
Нет, нет, это действительно не могло. Вас когда-нибудь заставляли использовать это? - person tom redfern; 22.01.2014
comment
Sharepoint? увы да :( "Контролируемый" текстовый документ, полный бобин? увы, да :( Stylecop? увы, да :( - person gbjbaanb; 22.01.2014
comment
Нет, я имел в виду стайлкоп. Принудительное использование stylecop является нарушением Женевских конвенций. - person tom redfern; 31.03.2014
comment
Это также замедляет вашу сборку. - person Berin Loritsch; 14.07.2016