Как заставить ForceCop игнорировать файл?

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

Здесь описаны три метода: http://sethflowers.com/blog/force-stylecop-to-ignore-a-file/.. но ни один из этих методов не работает в StyleCop 4.7

Наиболее полезным из которых является этот метод в .csproj:

<Compile Include="AViolatingFile.cs">
    <ExcludeFromStyleCop>true</ExcludeFromStyleCop>
</Compile>

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

Ответы

Ответ 1

// <auto-generated/>

Поместите это в начало класса

Политик стиля игнорирует автоматически сгенерированный код

Ответ 2

Я также использовал стиль и обратно, и считаю, что вам нужно использовать следующую строку в файле csproj:

<Import Project="$(MSBuildExtensionsPath)\StyleCop\v4.6\StyleCop.targets" Condition="Exists('$(MSBuildExtensionsPath)\StyleCop\v4.6\StyleCop.targets')" />

Вам также потребуется изменить номер версии в объявлении xml на все, что вы установили.

Надеюсь, что это поможет.

Ответ 3

Atm, я запускаю StyleCop 4.7.49 из Xamarin Studio, и у меня есть какой-то отвратительный автогенерированный файл вне моего контроля (смотря на вас ¬¬ netfx-System.StringFormatWith)...

Решение для меня состояло в том, чтобы отключить все правила только для этого файла... как это сделать?

Вы должны изменить файл Settings.StyleCop и вставить внутри тега StyleCopSettings следующие

<SourceFileList>
    <SourceFile>HideousClass.cs</SourceFile>
    <Settings>
        <GlobalSettings>
        <BooleanProperty Name="RulesEnabledByDefault">False</BooleanProperty>
        </GlobalSettings>
    </Settings>
</SourceFileList>

Измените HideousClass.cs на нужный файл. вы также можете иметь несколько тегов SourceFile, если вы хотите сразу установить правила для разных файлов.

Взято из Использование списков файлов в StyleCop на CodePlex.com (см. "Отключить все правила для подмножества файлов" в разделе "Примеры" ).

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