StyleCop SA1638

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StyleCop SA1638相关的知识,希望对你有一定的参考价值。

我在VS2008中使用StyleCop。我收到此错误:

SA1638:文件头的copyright tag中的file属性必须包含文件名。

这是我的标题。

// <copyright file="AssemblyInfo.cs" company="company">
// Copyright (c) company. All rights reserved.
// </copyright>
// <author>me</author>
// <email>me@me.com</email>
// <date>2010-03-04</date>
// <summary>blah blah.</summary>

我怀疑问题是我的AssemblyInfo.cs位于Properties文件夹中。有关如何在不消除StyleCop的情况下修复此警告的任何线索?

答案

在“解决方案资源管理器”中选择该文件,打开右键单击“属性”窗口,复制“文件名”区域中的文本,将其粘贴到标题中。

属性目录应该无关紧要,我假设你在那里有一个拼写错误。

加成: 如果这不起作用,那么要修复它,你将不得不把它带到一个新的水平。 将整个项目复制到新解决方案,使用StyleCop重新扫描。 删除所有不相关的文件,使用StyleCop重新扫描。 删除问题文件中除标题以外的所有代码,使用StyleCop重新扫描。 如果问题在途中某处消失,那将是非常奇怪的。 如果问题没有消失,那么你就有了可重复的样本!

压缩该样本并将其附加到新的工作项:http://code.msdn.microsoft.com/sourceanalysis/WorkItem/List.aspx

考虑到一段时间,可能会有一个新的版本来修复这个bug。 8)

另一答案

对于Properties文件夹中的AssemblyInfo.cs文件,我有以下内容:

// <copyright file="AssemblyInfo.cs" company="company">
// product
// Copyright (c) 2004-2010
// by company ( http://www.example.com )
// </copyright>

它没有任何问题。您确定文件名是否正确(可能是外壳已关闭?)并且您没有任何无效的XML(可能是公司名称中的&符号)?

另一答案

根据StyleCop文档,这就是你现在如何处理AssemblyInfo.cs

由工具完全自动生成且StyleCop不应检查或强制执行的文件可以包含“自动生成”标头而不是标准文件标头。这将导致StyleCop忽略该文件。绝不应将此类型的标头放在手动编写的代码文件之上。

// <auto-generated />
namespace Sample.Something
{
    // The contents of this file are completely auto-generated by a tool.
}
另一答案

原因是文件名与该文件中的类名不同。使文件名和类名相同将解决此问题。

另一答案

最可能的问题是你的文件名和类名不同。如果您可以将您的类更新为partial,则此错误将不会显示在StyleCop中。

另一答案

文件名和类应该相同。

请在文件头文档之后使用它。它将解决问题。

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

以上是关于StyleCop SA1638的主要内容,如果未能解决你的问题,请参考以下文章

StyleCop SA1124 DoNotUseRegions 是不是合理? [关闭]

sa1200 所有 using 指令都必须放在命名空间(StyleCop)内纯粹是装饰性的吗? [复制]

如何抑制 StyleCop 警告?

StyleCop(C#代码检测工具)

StyleCop(C#代码检测工具)

StyleCop学习笔记——初识StyleCop