Как сделать так, чтобы предупреждения StyleCop показывались как ошибки билда в Visual Studio? Как правильнее интегрировать StyleCop в build-процесс?
Как интегрировать StyleCop в build-процесс?
2
Спросил
Лучший ответ:
2
Для запуска проверки StyleCop во время билда нужно импортировать target-файл Microsoft.StyleCop.targets (поставляется вместе с StyleCop) в файле проекта.
<Import Project="Путь к папке StyleCop\Microsoft.StyleCop.targets" />
Путь к папке, где лежит файл Microsoft.StyleCop.targets, естественно специфичен для конкретной машины. Это неудобно если проект находится в репозитории и используется несколькими разработчиками. Для преодоления этого недостатка можно воспользоваться переменными среды или написать путь относительно проекта и держать все инструменты StyleCop в репозитории.
Чтобы предупреждения StyleCop стали ошибками билда нужно установить свойство StyleCopTreatErrorsAsWarnings
в false
. Делается это тоже в файле проекта (он же MSBuild-скрипт):
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="3.5" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- ... -->
<StyleCopTreatErrorsAsWarnings>false</StyleCopTreatErrorsAsWarnings>
</PropertyGroup>
<!-- ... -->
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="Путь к папке StyleCop\Microsoft.StyleCop.targets" />
</Project>
А чем эта штука отличается от ReSharper? Он же тоже проверяет стиль написания кода (форматирование и пр.)
ReSharper больше относится к среде Visual Studio, в то время как StyleCop чаще используется на уровне continuous integration сервера — встраивается в процесс сборки. То есть задача ReSharper — помочь разработчику писать код, а задача StyleCop — проверять соблюдены ли командой стандарты кодирования.