Подавления StyleCop не работают

Я пытался подавить несколько предупреждений StyleCop, и мне не повезло. Вот некоторая информация, которая может быть полезна.

  • Версия StyleCop: 4.4.0.9
  • Предупреждения о подавлении: SA1600, SA1633, SA1634

Что я пробовал

  • Локальное подавление
  • Файл GlobalSupressions.cs
  • Подавление файлов .StyleCop на уровне проекта
  • Уровень решения Подавление файла .StyleCop
  • Оба вышеупомянутых одновременно
  • Слияние файла .StyleCop уровня решения с файлом .StyleCop уровня проекта
  • Слияние с родительскими файлами и удаление файла .StyleCop уровня проекта
  • Поднимая одну ногу, одну руку за голову, закрывая один глаз, и восстанавливая раствор ...

В любом случае, у меня заканчиваются возможности подавить эти сообщения, я надеюсь, что кто-нибудь может помочь!

Пример локального подавления

[SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented", Justification = "Reviewed. Suppression is OK here.")]

Пример глобального подавления

[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.StyleCop.CSharp.DocumentationRules", "SA1600:ElementsMustBeDocumented", Justification = "Reviewed. Suppression is OK here.")]

person Mike Perrenoud    schedule 05.07.2012    source источник
comment
Не могли бы вы привести пример вашего локального подавления? Возможно ли, что у вас есть небольшая опечатка, из-за которой локальное подавление не работает?   -  person Jaime Torres    schedule 05.07.2012
comment
@JTorres Я сделал это для вас.   -  person Mike Perrenoud    schedule 05.07.2012


Ответы (1)


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

Итак, я сделал вот что.

  1. Удалите неподдерживаемую версию ReSharper.
  2. Покопайтесь в реестре, удалив все записи для той версии ReSharper, которую я смог найти, чтобы установщик увидел, что они исчезли. Это была интересная процедура, потому что удаление неподдерживаемой версии на самом деле не помогает самоочиститься, хотя, думаю, в этом нет ничего удивительного.

Второй вариант - это действительно много пробной ошибки - я бы удалил некоторые записи и снова запустил установщик, чтобы посмотреть, не появилось ли предупреждение - как только предупреждение больше не отображается, я продолжил установку, и теперь я могу подавить правила документации на уровне класса!

Большое спасибо (НЕ) StyleCop за то, что позволили неподдерживаемой версии ReSharper испортить поддерживаемую версию - это было полезно - хотя и не так, как кажется!

person Mike Perrenoud    schedule 09.07.2012