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

ASP.NET Core 9 Web API启动时GetSwagger方法未实现错误排查

解决ASP.NET Core 9中Swashbuckle.AspNetCore的TypeLoadException问题

可能的原因及修复步骤

1. 统一Swashbuckle包版本

ASP.NET Core 9对Swashbuckle包版本有严格的兼容性要求,9.0.4版本可能存在适配问题。直接安装适配ASP.NET Core 9的最新稳定版,执行以下NuGet命令:

Install-Package Swashbuckle.AspNetCore -Version 9.1.0

确保所有Swashbuckle相关子包(Swagger、SwaggerGen、SwaggerUI)版本完全一致,避免版本混合导致的冲突。

2. 清理编译缓存

  • 删除项目根目录下的bin和obj文件夹,彻底清除旧编译产物
  • 执行命令重新清理并构建项目:
dotnet clean
dotnet build

3. 检查项目文件中的包引用

打开.csproj文件,确认所有Swashbuckle相关引用版本统一,示例如下:

<PackageReference Include="Swashbuckle.AspNetCore" Version="9.1.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Swagger" Version="9.1.0" />
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="9.1.0" />

修改不一致的版本后,执行命令重新还原依赖:

dotnet restore

4. 简化Swagger配置代码

暂时移除自定义的Swagger扩展逻辑,使用ASP.NET Core 9标准配置验证是否正常启动:

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new() { Title = "MyAPI", Version = "v1" });
});

var app = builder.Build();

if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI(c => c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI v1"));
}

app.UseHttpsRedirection();
app.MapControllers();
app.Run();

如果简化后能正常启动,再逐步恢复自定义配置,排查冲突点。

5. 排查全局程序集缓存冲突

检查系统全局程序集缓存(GAC)中是否存在旧版本Swashbuckle包,执行命令查看:

gacutil /l Swashbuckle.AspNetCore.SwaggerGen

若存在旧版本,执行命令卸载:

gacutil /u Swashbuckle.AspNetCore.SwaggerGen

之后重新构建项目验证。


内容的提问来源于stack exchange,提问作者Wallace B. McClure

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 08:27:31