VS2010:自动生成的文件和XML文档

And*_*son 19 documentation-generation visual-studio-2010 xml-comments compiler-warnings visual-studio

这真的只是重新询问有关Visual Studio 2008的问题.VS2010是否提供任何功能来摆脱自动生成代码的CS1591编译器警告?

CS1591: Missing XML comment for publicly visible type or member

引用VS2008的问题:

这不仅仅是一个问题,而是一个烦恼.我的项目包含许多自动生成的文件(使用mgmtclassgen.exe).当我生成XML文档时,我精美评论的库受到来自这些autogen文件的xml文档警告的困扰.

有没有办法a)抑制生成这些文件的文档或b)抑制警告CS1591只是为了一组文件?我显然不想修改自动生成的文件,即使只是添加抑制编译指示.

编辑:在我的情况下,违规文件由WCF RIA服务生成,因此生成错误的文件是自动生成的WebContext类(MyProject.BusinessApplication.Web.g.cs).

我无法手动修改此文件,因为它是动态生成的,所有更改都将被删除.我也不想全局禁用警告,因为它对我的非自动生成的代码很有帮助.

Tal*_*lek 12

我在自动生成的实体框架类中遇到了类似的问题.我设法通过修改模板文件来解决它.这显然不适用于所有自动生成的场景,它可能不适用于您的特定RIA场景,但我会在此处发布可能遇到相同问题的其他任何人.

打开模板文件(something.tt)并找到自动生成的xml注释部分

//------------------------------------------------------------------------------
// <auto-generated>
//    This code was generated from a template.
//
//    Manual changes to this file may cause unexpected behavior in your application.
//    Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

在注释块后面添加以下行

#pragma warning disable 1591 
Run Code Online (Sandbox Code Playgroud)

稍微低一点,您应该找到命名空间块结束的位置.它可能看起来像这样

if (!String.IsNullOrEmpty(ObjectNamespace))
{
    PopIndent();
#>
}
Run Code Online (Sandbox Code Playgroud)

在该右括号之后放置以下行

#pragma warning restore 1591
Run Code Online (Sandbox Code Playgroud)

如果一切正常,那么每当您的类由Entity Framework自动生成时,它们都应该由disable/restore pragma语句包装.这应该可以抑制EF类中没有XML注释的警告,而不会抑制项目级别的警告.