【问题标题】:Issue with Global.asax.cs file and StyleCop rule SA1649Global.asax.cs 文件和 StyleCop 规则 SA1649 的问题
【发布时间】:2011-12-09 09:53:00
【问题描述】:

目前我正在处理一个项目,我们正在考虑将我们的 StyleCop 从版本 4.3.3 升级到 4.5

在所有这一切的乐趣中,我们遇到了规则 SA1649 -“FileHeaderFileNameDocumentationMustMatchTypeName”,这一切都很好,但会导致 Global.asax.cs 文件出现问题,在该文件中

// --------------------------------------------------------------------------------------------------------------------
// <copyright file="Global.asax.cs" company="COMPANY">
//   Copyright (c) COMPANY. All rights are reserved.....
// </copyright>
// <summary>
//   Starting point for back office website.
// </summary>
// --------------------------------------------------------------------------------------------------------------------

namespace Foo.Web
{
    /// <summary>
    /// Starting point for back office website.
    /// </summary>
    public class MvcApplication : HttpApplication
    {
        ....
    }
}

因为文件名“Global.asax.cs”和类“MvcApplication”不匹配而被投诉。我们试图在 sylecop 设置中为“Global.asax.cs”设置一个禁止列表,但这似乎不起作用。 (目前我们的解决方法是完全禁用该规则,但我们不想保持这种情况,我们只希望 Global.asax.cs 文件例外。)

【问题讨论】:

    标签: .net visual-studio-2010 stylecop


    【解决方案1】:

    使用命名空间级别的抑制:

    [module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]
    
    namespace MyNamespace
    {
    
    }
    

    【讨论】:

    • 遗憾的是,这要求我们为每个不理想的 MVC 项目都这样做。值得庆幸的是,我们设法手动修复了设置以使其正常工作。
    【解决方案2】:

    通过一些时间和操作原始工具生成的文件发现了它。

    <StyleCopSettings Version="105">
      <Analyzers>
      ... Removed for brevity ...
      </Analyzers>
      <SourceFileList>
            <SourceFile>Global.asax.cs</SourceFile>
            <Settings>
                <Analyzers>
                    <Analyzer AnalyzerId="StyleCop.CSharp.DocumentationRules">
                        <Rules>
                            <Rule Name="FileHeaderFileNameDocumentationMustMatchTypeName">
                              <RuleSettings>
                                <BooleanProperty Name="Enabled">False</BooleanProperty>
                              </RuleSettings>
                            </Rule>
                        </Rules>
                    </Analyzer>
                </Analyzers>
            </Settings>
        </SourceFileList>
    </StyleCopSettings>
    

    希望这可以帮助其他人解决这个问题。

    【讨论】:

    • 令人沮丧的 34 RuleSettings 之后,我让 StyleCop 忽略了 SimpleJSON 投入到我的项目中的所有内容。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2014-10-16
    • 2010-10-13
    • 1970-01-01
    • 2010-11-25
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多