Почему StyleCop SA1305 не соблюдает список разрешенных префиксов в VS2010 (или MSBuild)?

Я только что обновил проект с 2008 до 2010 Beta 2, и теперь StyleCop сообщает о предупреждениях SA1305 (венгерская нотация) для имен переменных с префиксом «is». «Is» определенно входит в список разрешенных префиксов.

Это известная проблема? Кто-нибудь еще сталкивался с этой проблемой? В 2008 году код определенно компилировался без каких-либо предупреждений.

Обновление. Оказывается, это может работать, как и ожидалось, в Visual Studio, но с ошибкой через MSBuild. Смотрите ответ ниже, почему.


person Jedidja    schedule 01.12.2009    source источник


Ответы (3)


Вы можете вручную добавить исключение «is» в Settings.StyleCop:

<Analyzers>    
  <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
    <AnalyzerSettings>
      <CollectionProperty Name="Hungarian">
        <Value>is</Value>
      </CollectionProperty>
    </AnalyzerSettings>
  </Analyzer>
</Analyzers>
person Jenn    schedule 26.10.2010

Я столкнулся с аналогичной проблемой сейчас при сборке с помощью msbuild vs на коробке разработчика. Оказывается, установленный по умолчанию Settings.StyleCop (C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.4) на самом деле содержит набор значений, которые вам нужно будет продублировать в вашем собственном файле, если:

  • вы не устанавливаете StyleCop на «другую» (сборочную) машину

or

  • у вас включено «не объединять с другими файлами настроек»

В частности, редактор настроек StyleCop автоматически выбирает венгерскую нотацию, исключаемую из другого файла, независимо от того, что указано на вкладке «Файлы настроек».

person Jedidja    schedule 24.11.2010

просто добавьте это так:

<Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
  <AnalyzerSettings>
    <CollectionProperty Name="Hungarian">
      <Value>is</Value>
    </CollectionProperty>
  </AnalyzerSettings>
</Analyzer>

http://www.thewayithink.co.uk/stylecop/sa1305.htm

person chauey    schedule 07.01.2010
comment
На самом деле он находится в списке по умолчанию. - person Jedidja; 10.01.2010