Почему StyleCop SA1305 не соблюдает список разрешенных префиксов в VS2010 (или MSBuild)? - PullRequest
7 голосов
/ 01 декабря 2009

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

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

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

Ответы [ 3 ]

10 голосов
/ 26 октября 2010

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

<Analyzers>    
  <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
    <AnalyzerSettings>
      <CollectionProperty Name="Hungarian">
        <Value>is</Value>
      </CollectionProperty>
    </AnalyzerSettings>
  </Analyzer>
</Analyzers>
4 голосов
/ 24 ноября 2010

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

  • вы не устанавливаете StyleCop на "другой" (сборочный) компьютер

или

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

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

2 голосов
/ 07 января 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

...