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

创建ASP.NET Core 6.0 Web API项目时出现语法报错问题

问题原因
  • 你遇到的报错是IDE语法识别不兼容导致的,所有报错的语法都是C# 10引入的新特性,和.NET 6.0默认绑定:
    • 文件范围命名空间:即namespace XXX;写法,无需后续花括号包裹整个文件内的类
    • 顶级语句:Program.cs无需定义Program类和Main方法,直接写业务逻辑
    • 全局using:自动生成的全局引用文件,无需在每个业务文件重复写公共using
  • 你当前VS Code的C#语言服务(OmniSharp)版本过低,不支持C# 10语法,所以会抛出{ expected这类语法错误提示,.NET 3.1对应C# 8.0,没有上述新特性,所以不会触发识别报错。
解决方案

方案1:修复IDE识别问题(推荐,保留C# 10新特性)

  1. 先在项目根目录执行dotnet build命令验证实际编译是否正常,只要SDK版本是6.0,编译一定会成功,说明只是IDE提示错误
  2. 打开VS Code扩展面板,找到C#扩展,升级到最新正式版
  3. 若升级后仍有报错,在TodoApi.csproj的<PropertyGroup>节点中手动指定C#版本,添加如下配置:
<LangVersion>10</LangVersion>
  1. 重启VS Code即可消除所有错误提示

方案2:回退到旧版C#语法适配

如果不想升级扩展,也可以手动修改代码适配旧版语法规则:

  1. 把所有文件范围命名空间改回块级写法,例如:
// 原写法
namespace TodoApi.Controllers;

// 修改后
namespace TodoApi.Controllers
{
    // 把整个控制器代码移到花括号内
}
  1. Program.cs改回传统写法,示例如下:
namespace TodoApi
{
    public class Program
    {
        public static void Main(string[] args)
        {
            var builder = WebApplication.CreateBuilder(args);
            // 原有注册服务的代码移到此处
            var app = builder.Build();
            // 原有中间件配置代码移到此处
            app.Run();
        }
    }
}
  1. 可在csproj中关闭隐式引用配置,避免自动生成全局using文件:
<ImplicitUsings>disable</ImplicitUsings>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:09:00