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

.NET Core WebApi从2.1迁移到8.0时Swashbuckle类型加载错误求助

.NET Core 2.1迁移8.0 Swagger TypeLoadException问题解决

问题根源

Swashbuckle.AspNetCore 7.x及以上版本已移除Swashbuckle.AspNetCore.Swagger.Info类型,该类型被替换为Microsoft.OpenApi.Models.OpenApiInfo;同时你安装的包存在冗余,Swashbuckle.AspNetCore已包含Swagger核心、SwaggerGen、SwaggerUI等组件,无需单独安装Swashbuckle和Swashbuckle.AspNetCore.Swagger。

解决步骤

  • 卸载冗余NuGet包:移除Swashbuckle、Swashbuckle.AspNetCore.Swagger,仅保留Swashbuckle.AspNetCore(它会自动管理所需的依赖组件)。
  • 替换代码类型引用:将所有Swashbuckle.AspNetCore.Swagger.Info替换为Microsoft.OpenApi.Models.OpenApiInfo,并确保代码顶部引入命名空间using Microsoft.OpenApi.Models;。
  • 更新Swagger配置代码:
    旧版配置示例:
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
    });
    
    修改为新版:
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
    });
    
  • 清理重建项目:删除项目目录下的bin和obj文件夹,重新生成项目,确保依赖正确加载。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 13:52:03