7

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

SA1638: 文件头的版权标签中的文件属性必须包含文件的名称。

这是我的标题。

// <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 静音的情况下修复此警告的任何线索?

4

6 回答 6

5

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

Properties 目录无关紧要,我假设您在某处有错字。

补充:
如果这不起作用,那么要修复它,您必须将其提升到一个新的水平。
将整个项目复制到新的解决方案中,使用 StyleCop 重新扫描。
删除所有不相关的文件,用 StyleCop 重新扫描。
删除问题文件中除header外的所有代码,用StyleCop重新扫描。
如果问题在途中的某个地方消失了,那就太奇怪了。
如果问题没有消失,那么您就有了可重现的样本!

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

假以时日,可能会有一个新版本来修复该错误。8)

于 2010-03-04T18:34:51.650 回答
3

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

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

它没有任何问题。你确定你的文件名是正确的(可能是大写关闭了?)并且你没有任何无效的 XML(也许是你公司名称中的 & 符号)?

于 2010-03-04T18:35:10.020 回答
2

根据 StyleCop 文档,这就是你现在的处理方式AssemblyInfo.cs

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

// <auto-generated />
namespace Sample.Something
{
    // The contents of this file are completely auto-generated by a tool.
}
于 2015-08-25T08:40:04.853 回答
0

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

于 2012-12-27T20:12:18.697 回答
0

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

于 2015-07-03T11:00:49.853 回答
0

文件名和类应该相同。

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

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

于 2018-05-07T13:39:15.970 回答