You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用assembly:SuppressMessage抑制迁移代码的CS8981警告?

解决CS8981警告抑制不生效的问题

你的代码抑制不生效主要有三个核心问题:

  • 类别指定错误:CS8981是C#原生编译器警告,对应的类别应该是"CSharp",而非"Microsoft.Naming"(后者属于StyleCop或旧版分析器的规则类别)。
  • Target范围不匹配:你将Target指向了命名空间,但警告实际触发在appointmenttypeassignments这个类上,需要精准指定目标实体。
  • 警告编号格式冗余:SuppressMessage仅需填写警告编号"CS8981",不需要附带后面的描述文本。

修正后的代码示例(精准抑制单个类)

[assembly: SuppressMessage(
    "CSharp", "CS8981",
    Justification = "迁移文件命名无需遵循大小写规范",
    Scope = "type", 
    Target = "My.Namespace.Database.Migrations.Migrations.appointmenttypeassignments")]

namespace My.Namespace.Database.Migrations.Migrations
{
    public partial class appointmenttypeassignments : Migration
    {
        protected override void Up(MigrationBuilder migrationBuilder)
        {
            // ...
        }
    }
}

批量抑制整个命名空间下的该警告

如果需要一次性屏蔽整个迁移命名空间内的CS8981警告,可以调整Scope和Target:

[assembly: SuppressMessage(
    "CSharp", "CS8981",
    Justification = "迁移文件命名无需遵循大小写规范",
    Scope = "namespaceanddescendants", 
    Target = "My.Namespace.Database.Migrations.Migrations")]

补充说明:官方文档未明确标注该警告的类别,是因为它属于C#核心编译器原生警告,直接使用"CSharp"作为类别即可正常生效。

内容的提问来源于stack exchange,提问作者Anna Melashkina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 22:12:05