![](/img/trans.png)
[英]'Info' class not recognized with Swashbuckle and Swagger libraries
[英]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.