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

.NET Core 2.1迁移至.NET 8.0时遇Swashbuckle类型加载异常求助

解决.NET 8迁移中Swashbuckle的TypeLoadException问题

这个错误是因为Swashbuckle.AspNetCore 5.x及以上版本移除了Swashbuckle.AspNetCore.Swagger.Info类型,改用官方标准的Microsoft.OpenApi.Models.OpenApiInfo替代。以下是具体修复步骤:

  • 替换代码中的旧类型
    找到配置Swagger的代码(通常在Startup.cs或Program.cs),把所有Info相关的引用替换为OpenApiInfo:
    原来的代码:

    using Swashbuckle.AspNetCore.Swagger;
    
    // ...
    
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new Info 
        { 
            Title = "My API", 
            Version = "v1",
            Description = "API description",
            Contact = new Contact { Name = "Team", Email = "team@example.com" }
        });
    });
    

    修改后:

    using Microsoft.OpenApi.Models;
    
    // ...
    
    services.AddSwaggerGen(c =>
    {
        c.SwaggerDoc("v1", new OpenApiInfo 
        { 
            Title = "My API", 
            Version = "v1",
            Description = "API description",
            Contact = new OpenApiContact { Name = "Team", Email = "team@example.com" }
        });
    });
    
  • 统一Swashbuckle包版本
    确保所有Swashbuckle相关NuGet包(Swashbuckle.AspNetCore、Swashbuckle.AspNetCore.SwaggerGen、Swashbuckle.AspNetCore.SwaggerUI)的版本一致,建议升级到适配.NET 8的最新稳定版。

  • 检查其他旧API引用
    如果代码中还用到了Swashbuckle.AspNetCore.Swagger下的其他类型(比如Contact、License),同样替换为Microsoft.OpenApi.Models命名空间下的对应类型(OpenApiContact、OpenApiLicense等)。

  • 清理并重建项目
    删除项目的bin和obj目录,执行dotnet clean和dotnet build命令,确保没有旧的编译缓存残留。

内容的提问来源于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 16:10:57