Удалить интеграцию stylecop с msbuild

У меня есть решение, в котором около 80 проектов. В каждом проекте включена интеграция StyleCop с MSBuild:

  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
  <Import Project="$(ProgramFiles)\MSBuild\Microsoft\StyleCop\v4.4\Microsoft.StyleCop.targets" />

Мне нужно удалить это из ВСЕХ проектов. Есть ли способ проверить и отредактировать вручную каждый файл .csproj?


person zaitsman    schedule 24.09.2014    source источник
comment
возможный дубликат Как избавиться от StyleCop   -  person jordanhill123    schedule 24.09.2014
comment
@ jordanhill123 это не так. Этот вопрос был помечен как «отвеченный», когда человеку сказали, как отключить предупреждения. Я знаю, как это сделать. Мне нужно, чтобы контроллер TFS TEAMBUILD игнорировал эти операторы импорта.   -  person zaitsman    schedule 24.09.2014
comment
Поможет ли этот конкретный ответ в этом вопросе? stackoverflow.com/a/21931371/749725 Я не использую TFS, поэтому не могу его протестировать и не уверен, как это будет обрабатывать этот файл конфигурации.   -  person jordanhill123    schedule 24.09.2014
comment
Если ответ Джордана вас не устраивает, возможно, вы можете рассмотреть возможность замены оператора импорта другим оператором импорта, указывающим на какой-то глобальный файл, который будут использовать все ваши проекты. Таким образом, в будущем вы сможете централизованно управлять глобальными настройками для всех своих проектов. Я знаю, что сейчас это мало поможет вам, но может быть хорошей идеей в следующий раз, когда вам придется сделать что-то подобное.   -  person Roman    schedule 24.09.2014


Ответы (2)


Цель StyleCop, как определено в Microsoft.StyleCop.targets зависит от свойства StyleCopEnabled.

Вот фрагмент из Microsoft.StyleCop.targets:

<!-- Define target: StyleCop -->
<Target Name="StyleCop" Condition="'$(StyleCopEnabled)' != 'false'">
  <Message Text="Forcing full StyleCop reanalysis." Condition="'$(StyleCopForceFullAnalysis)' == 'true'" Importance="Low" />
  ... snip ...

Быстрый способ отключить stylecop — передать глобальную настройку для StyleCopEnabled. Например. если вы строите из командной строки, команда будет: msbuild MyProject.proj /p:StyleCopEnabled=false

person seva titov    schedule 24.09.2014
comment
Я попытался указать это в аргументах MSBuild для TFS, и по какой-то причине он проигнорировал это. Конечно, может быть проблема в TFS. Кроме того, нужно ли установить stylecop, чтобы распознать этот флаг? - person zaitsman; 25.09.2014
comment
@zaitsman, в ваших проектах предполагается, что StyleCop установлен, и сборка завершится ошибкой, если файл Microsoft.StyleCop.targets не будет найден в местах, указанных в элементе «Импорт». Код ошибки будет MSB4019. - person seva titov; 25.09.2014
comment
да это я собрал. Единственный способ обойти это — вручную отредактировать файлы .csproj для каждого проекта, чтобы удалить это. Я ищу какой-то автоматизированный способ достижения того же результата. Я не могу установить stylecop на размещенный контроллер сборки в tfs онлайн. - person zaitsman; 26.09.2014

У меня была аналогичная проблема, все еще ручное редактирование, но это сработало для меня. Открыл весь файл .csproj в блокноте, выполнив поиск в каталоге проектов, затем выбрав все и «Редактировать с помощью Notepad ++». Затем выполните «Найти-Заменить» с «Найти все во всех открытых документах», чтобы удалить строку импорта:

<Import Project="$(ProjectDir)\..\StyleCop.targets" Condition=" '$(OS)' == 'Windows_NT' " />
person CodyF    schedule 30.04.2015