StyleCop SA1638

问题描述 投票:7回答:6

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

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

这是我的标题。

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

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

c# visual-studio-2008 stylecop
6个回答
5
投票

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

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

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

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

考虑到一段时间,可能会有一个新的版本来修复这个bug。 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不应检查或强制执行的文件可以包含“自动生成”标头而不是标准文件标头。这将导致StyleCop忽略该文件。绝不应将此类型的标头放在手动编写的代码文件之上。

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

0
投票

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


0
投票

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


0
投票

文件名和类应该相同。

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

[module: System.Diagnostics.CodeAnalysis.SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:FileHeaderFileNameDocumentationMustMatchTypeName", Justification = "Reviewed.")]
© www.soinside.com 2019 - 2024. All rights reserved.