为什么找不到方法 app.UseSwaggerUI(...)?

问题描述

我想在使用 .Net Core 3.1 创建的新 Web 应用程序上添加 swagger。我在以下行收到错误

app.UseSwaggerUI(c =>
{
    c.SwaggerEndpoint("/swagger/v1/swagger.json","My API V1");
});

“IApplicationBuilder”不包含“UseSwaggerUI”的定义,并且找不到接受“IApplicationBuilder”类型的第一个参数的可访问扩展方法“UseSwaggerUI”(您是否缺少 using 指令或程序集引用?)>

即使我在 the MSDN example 中安装了 Swagger。

这是来自 NuGet 的 swagger 包的内容

enter image description here

我有以下用途:

using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy;
using Microsoft.AspNetCore.SpaServices.ReactDevelopmentServer;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Options;
using Microsoft.OpenApi.Models;

我错过了什么?

解决方法

NuGeT 包 Swashbuckle.AspNetCore.Swagger 仅提供文档的 JSON 端点。

要真正拥有 UI,您还必须安装相应的包 Swashbuckle.AspNetCore.SwaggerUi

Install-Package Swashbuckle.AspNetCore.SwaggerUi -Version 5.6.3