StyleCop SA1638

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静默处理?

你找到解决方法了吗? - Task
不行,没有修复。我必须抑制那个警告。 - niaher
非常奇怪。我只能假设你在StyleCop中发现了一个错误。回答已更新! - Task
谢谢,任务。我稍后会发布可重现的样例。 - niaher
6个回答

5
在“解决方案资源管理器”中选择文件,在右键单击“属性”窗口中打开,复制“文件名”区域中的文本,将其粘贴到标题中。
属性目录不应该有影响,我认为你在其中某个地方打错了字。
补充:
如果这样做无效,则需要采取更高级别的方法来修复它。
将整个项目复制到新的解决方案中,使用StyleCop重新扫描。
删除所有不相关的文件,使用StyleCop重新扫描。
删除问题文件中除标题外的所有代码,使用StyleCop重新扫描。
如果问题在此过程中消失,那就真的很奇怪了。
如果问题没有消失,那么你就有了一个可重现的示例!

将该示例压缩并附加到此处的新工作项中:http://code.msdn.microsoft.com/sourceanalysis/WorkItem/List.aspx 经过一段时间,可能会发布新版本来修复错误。 8 )

3

我有一个位于 Properties 文件夹中的 AssemblyInfo.cs 文件,内容如下:

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

而且它没有任何问题。您确定文件名正确吗(大小写是否正确?)以及您是否有任何无效的XML(公司名称中可能有一个&符号)?


2

根据StyleCop文档,这是现在处理AssemblyInfo.cs文件的方法:

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

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

0

很可能的问题是您的文件名和类名不同。 如果您可以将您的类更新为部分类,那么这个错误就不会从StyleCop中显示出来。


0
原因是文件名与文件内的类名不同。将文件名和类名设置为相同即可解决此问题。

0

文件名和类名应该相同。

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接