为什么StyleCop SA1305不尊重VS2010(或MSBuild)中允许的前缀列表?

Jed*_*dja 7 stylecop visual-studio-2010 visual-studio-2010-beta-2

我刚刚将一个项目从2008升级到2010 Beta 2,而StyleCop现在报告SA1305(匈牙利表示法)警告变量名称前缀为'is'.'Is'肯定在允许的前缀列表中.

这是一个已知的问题?还有其他人遇到过这个问题吗?该代码肯定是在2008年没有任何警告的情况下编译的.

更新:事实证明,这可以在Visual Studio中按预期工作,但然后通过MSBuild失败.请参阅下面的答案了解原因.

Jen*_*enn 11

您可以手动将"is"异常添加到Settings.StyleCop:

<Analyzers>    
  <Analyzer AnalyzerId="Microsoft.StyleCop.CSharp.NamingRules">
    <AnalyzerSettings>
      <CollectionProperty Name="Hungarian">
        <Value>is</Value>
      </CollectionProperty>
    </AnalyzerSettings>
  </Analyzer>
</Analyzers>
Run Code Online (Sandbox Code Playgroud)


Jed*_*dja 4

我现在在使用 msbuild 与在开发人员盒子上构建时遇到了类似的问题。事实证明,C:\Program Files (x86)\MSBuild\Microsoft\StyleCop\v4.4安装的默认 Settings.StyleCop ( ) 实际上包含一堆值,如果出现以下情况,您将需要在自己的文件中复制这些值:

  • 您没有在“其他”(构建)计算机上安装 StyleCop

或者

  • 您启用了“不与任何其他设置文件合并”

具体来说 - StyleCop 设置编辑器会自动选择从其他文件中排除的匈牙利符号,无论“设置文件”选项卡显示什么。