首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >VS2010:自动生成的文件和XML文档

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

Stack Overflow用户
提问于 2010-09-03 02:59:07
回答 4查看 6.2K关注 0票数 19

这真的是在重新询问this question asked about 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 Services生成的,所以生成错误的文件是自动生成的WebContext类(MyProject.BusinessApplication.Web.g.cs)。

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-08-08 23:55:38

对于自动生成的实体框架类,我也遇到了类似的问题。我设法通过修改模板文件解决了这个问题。这显然不适用于所有自动生成的场景,也可能不适用于您的特定RIA场景,但我将在这里为其他可能有相同问题的人张贴。

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

代码语言:javascript
复制
//------------------------------------------------------------------------------
// <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>
//------------------------------------------------------------------------------

在注释块后面添加以下行

代码语言:javascript
复制
#pragma warning disable 1591 

再往下一点,您应该可以找到名称空间块的结束位置。它可能看起来像这样

代码语言:javascript
复制
if (!String.IsNullOrEmpty(ObjectNamespace))
{
    PopIndent();
#>
}

将下面一行放在那个右大括号之后

代码语言:javascript
复制
#pragma warning restore 1591

如果一切正常,那么只要你的类是由实体框架自动生成的,它们就应该被disable/restore杂注语句包装起来。这应该会抑制EF类中没有XML注释的警告,而不会抑制项目级别的警告。

票数 12
EN

Stack Overflow用户

发布于 2010-12-02 01:45:48

下面的文章可能会给你一些解决这个问题的提示:http://lvquoc.blogspot.com/2010/11/disable-xml-comment-warning-in-workflow.html

这篇文章的重要部分是Alan McBee的评论:要禁用在windows workflow VS2012+中生成的警告,请将以下内容添加到项目文件的底部:

代码语言:javascript
复制
<Target Name="XamlGeneratedCodeWarningRemoved" AfterTargets="MarkupCompilePass2">
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do echo #pragma warning disable 1591 > %%f.temp" />
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do type %%f >> %%f.temp" />
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do echo #pragma warning restore 1591 >> %%f.temp" />
  <Exec Command="for %%f in (@(_GeneratedCodeFiles)) do move /y %%f.temp %%f" />
  <Message Text="Xaml Generated Code Warnings Removed: @(_GeneratedCodeFiles)" />
</Target>
票数 2
EN

Stack Overflow用户

发布于 2012-05-09 17:44:16

与Quam Loc的解决方案类似,可以使用build目标禁用RIA生成的文件中的警告:

代码语言:javascript
复制
<Target Name="CreateRiaClientFilesTaskDisableWarnings" AfterTargets="CreateRiaClientFiles">
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do echo #pragma warning disable &gt; %%f.temp" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do type %%f &gt;&gt; %%f.temp" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do attrib -r %%f" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do move /y %%f.temp %%f" />
  <Exec Command="for %%f in (@(RiaClientGeneratedFiles)) do attrib +r %%f" />
  <Message Text="CreateRiaClientFilesTaskDisableWarnings: @(RiaClientGeneratedFiles)" />
</Target>

我刚刚在my blog上发布了这件事。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3630282

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档