首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SuppressMessage编译器警告生成代码的CS1591 (xsd.exe)

SuppressMessage编译器警告生成代码的CS1591 (xsd.exe)
EN

Stack Overflow用户
提问于 2022-11-29 13:50:19
回答 1查看 39关注 0票数 0

我在几个项目中使用工具xsd.exe为我的数据模型生成类。在我的csproj中打开文档文件生成时,编译器开始显示大量类型的警告:CS1591:Missing XML comment for publicly visible type or member,指向生成的构造函数。

由于这是一种有意的行为,我试图找出如何抑制这些警告。但只适用于由xsd.exe生成的类型,这些类型包含在一个源文件中。下一次运行xsd.exe时,文件内容将被替换。在此过程中,对文件的任何修改都将丢失。因此,在这里向文件添加一个#pragma warning disable并不是一个解决方案(我有时甚至使用一个构建目标来重新生成构建上的代码)。

但是.NET似乎有一个内置的机修工:装配级的SuppressMessageAttribute (Microsoft :禁止警告)。

因此,我创建了一个包含以下内容的文件GlobalSuppressions.cs

代码语言:javascript
复制
[assembly: SuppressMessage("Compiler",
                           "CS1591:MissingXmlCommentForPubliclyVisibleTypeOrMember",
                           Justification = "Generated code",
                           Scope = "member",
                           Target = "M:Company.IO.Component.Concrete.Configuration.ConfigItem.#ctor")]

但是这种压制却被忽视了。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-29 17:21:40

我找到了一个解决方案,而不必操作生成的源文件。

可以将.editorconfig放在生成的源文件的目录中。文件中包含的规则仅应用于此目录和子目录。

Long

  1. 只包含生成源文件的单独目录中的输出生成代码
  2. .editorconfig添加到该目录
  3. 按需要在.editorconfig中配置消息严重性

在我的例子中,如下所示

目录结构

代码语言:javascript
复制
\Configuration
  \Schema
    \.editorconfig  # applied to code files in this directory only
    \schema.xsd     # template for xsd.exe
    \schema.cs      # generated by xsd.exe
Project.csproj
Code.cs

.editorconfig含量

代码语言:javascript
复制
# message severity for generated code files
[*.cs]
dotnet_diagnostic.CS1591.severity = none

如果我直接将代码生成到obj/文件夹,并将其命名为schema.g.cs,情况可能会更好。但我希望将生成的文件保存在存储库中。这可能稍后会改变。

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

https://stackoverflow.com/questions/74615149

复制
相关文章

相似问题

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