我得到这个警告:“缺少公开可见类型或成员的XML注释”。

如何解决这个问题?


当前回答

来自@JonSkeet的答案几乎完成了。如果您想为解决方案中的每个项目禁用它,可以将下面的行添加到.editorconfig文件中。

dotnet_diagnostic.CS1591.severity = none

https://github.com/dotnet/roslyn/issues/41171#issuecomment-577811906

https://learn.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2022

查看文件层次结构和优先级添加文件的位置:

https://learn.microsoft.com/en-us/visualstudio/ide/create-portable-custom-editor-options?view=vs-2019#file-hierarchy-and-precedence

其他回答

还有另一种方法可以抑制这些消息,而不需要任何代码更改或pragma块。使用Visual Studio -转到项目属性>构建>错误和警告>抑制警告-将1591附加到警告代码列表。

I know this is a really old thread, but it's the first response on google so I thought I'd add this bit of information: This behavior only occurs when the warning level is set to 4 under "Project Properties" -> "Build". Unless you really need that much information you can set it to 3 and you'll get rid of these warnings. Of course, changing the warning level affects more than just comments, so please refer to the documentation if you're unsure what you'll be missing: https://msdn.microsoft.com/en-us/library/thxezb7y.aspx

Jon Skeet的回答非常适用于使用VisualStudio进行构建。但是,如果您通过命令行构建sln(在我的例子中是通过Ant),那么您可能会发现msbuild忽略sln抑制请求。

添加到msbuild命令行解决了我的问题:

/p:NoWarn=1591

我想对这里列出的答案补充一些东西:

正如Isak所指出的,XML文档对于类库非常有用,因为它为Visual Studio中的任何消费者提供了智能感知。因此,一个简单而正确的解决方案是关闭任何顶级项目(如UI等)的文档,因为它不会在自己的项目之外实现。

此外,我想指出的是,警告只表示在公开可见的成员。因此,如果将类库设置为只公开它需要公开的内容,则无需记录私有成员和内部成员。

这是因为您的项目属性中指定了一个XML文档文件,而您的方法/类是公共的,缺乏文档。 你可以:

禁用XML文档: 右键单击您的项目->属性->“构建”选项卡->取消选中XML文档文件。 坐下来自己写文档吧!

XML文档的总结如下:

/// <summary>
/// Description of the class/method/variable
/// </summary>
..declaration goes here..