簡體   English   中英

為什么 Swashbuckle.aspnet.core.swagger 不被識別

[英]Why Swashbuckle.aspnet.core.swagger not being recognized

I've installed though nuget package manager the Swashbuckle.AspNetCore.Swagger and had included the using Swashbuckle.AspNetCore.Swagger on the top, but I get error on the Info{ Title} methods. 誰能建議如何解決這個問題。

 services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info { Title = "My DAB API", Version = "V3.2.2" });
            }); 

我找到解決方案。

對於版本 5

using Microsoft.OpenApi.Models;


services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
});

如果您使用的是 DotnetCore (>= 3.0) 確保您使用的是Swashbuckle.AspNetCore包的預發布版(截至 12 月 19 日),即-Version 5.0.0-rc4 我錯誤地安裝了最新的穩定版本4.0.1 ,其中缺少Microsoft.OpenApi.Models

查看更多關於微軟

我在 ASP.NET Core 2.1 web api 中遇到了同樣的問題,但我通過首先安裝較低版本的包並逐個版本升級它來解決問題

Swashbuckle.AspNetCore 2.1.0 然后在我逐個版本升級包版本之后,直到出現相同的錯誤,但我沒有再次收到相同的錯誤,即使升級到 swashbuckle.AspNetCore 5.0.0-rc2 並且它現在可以正常使用以下內容配置

使用命名空間如下,因為 Info 類在最新版本的 swagger 中不再使用,而不是用於描述 swagger 元數據的 OpenApiInfo 類

using Microsoft.OpenApi.Models;

然后在ConfigureServices方法下的Startup.cs類中使用以下代碼

 services.AddSwaggerGen(c =>
        {
            c.SwaggerDoc("v1", new OpenApiInfo { Title = "www.compilemode.com", Version = "v1" });
        });

這是一個非常奇怪的解決方案,但這是我花了很多時間找到的唯一解決方法。

卸載包Swashbuckle.AspNetCore.Swagger並嘗試這個包Swashbuckle.AspNetCore.SwaggerGen

好吧,我找到了解決方案,終於。 我安裝了 Swashbuckle.AspNetCore 版本 4.0.1。 顯然它不適用於最新版本 5。

在將項目升級到 .net 核心 5.0 或 6.0 時,SwaggerDoc 確實有 SwaggerDoc("v1", info),而不是使用 SwaggerDoc("v1", new OpenApiInfo());

只需安裝軟件包 Microsoft.OpenApi 即可解決問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM