【问题标题】:Why is StyleCop SA1305 not respecting the allowed prefixes list in VS2010 (or MSBuild)?为什么 StyleCop SA1305 不遵守 VS2010(或 MSBuild)中允许的前缀列表?
【发布时间】:2010-12-22 01:37:02
【问题描述】:

我刚刚将一个项目从 2008 升级到 2010 Beta 2,StyleCop 现在报告带有前缀“is”的变量名称的 SA1305(匈牙利符号)警告。 'Is' 肯定在允许的前缀列表中。

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

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

【问题讨论】:

    标签: visual-studio-2010 stylecop


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      具体来说 - StyleCop 设置编辑器会自动从 other 文件中提取匈牙利符号,而不管“设置文件”选项卡显示什么内容。

      【讨论】:

        【解决方案3】:

        只需像这样添加它:

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

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

        【讨论】:

        • 它实际上在默认列表中。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-31
        • 2010-11-10
        • 1970-01-01
        • 2014-08-23
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多