为什么Swashbuckle.aspnet.core.swagger无法识别

时间:2018-11-30 01:48:47

标签: c# asp.net-core swagger swashbuckle

我虽然通过nuget package manager安装了Swashbuckle.AspNetCore.Swagger,并在顶部包括了使用Swashbuckle.AspNetCore.Swagger,但是在Info{ Title}方法上却遇到了错误。 任何人都可以提出解决此问题的建议。

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

7 个答案:

答案 0 :(得分:4)

如果您使用的是DotnetCore(> = 3.0),请确保使用Swashbuckle.AspNetCore软件包-Version 5.0.0-rc4的Pre-Release(截至12月19日)。我错误地安装了缺少4.0.1的最新稳定版本Microsoft.OpenApi.Models

See More On Microsoft

答案 1 :(得分:0)

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

您忘记了对象上的()new Info(){}

答案 2 :(得分:0)

卸载软件包Swashbuckle.AspNetCore.Swagger,然后尝试使用此软件包Swashbuckle.AspNetCore.SwaggerGen

答案 3 :(得分:0)

好吧,我终于找到了解决方案。我安装了Swashbuckle.AspNetCore版本4.0.1。显然,它不适用于最新版本5。

答案 4 :(得分:0)

我找到了解决方案。

对于版本5

using Microsoft.OpenApi.Models;


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

答案 5 :(得分:0)

我在ASP.NET Core 2.1 Web API中存在相同的问题,但是我已经解决了该问题,方法是先安装较低版本的软件包并逐个版本升级

  

Swashbuckle.AspNetCore 2.1.0,然后按版本升级了软件包版本,直到出现相同的错误,但是直到swashbuckle.AspNetCore 5.0.0-rc2及其现在都可以正常工作,我才再也没有收到相同的错误。正确配置以下

按以下方式使用名称空间,因为在最新版本的swagger中不再使用Info类,而不是用于描述swagger元数据的OpenApiInfo类

using Microsoft.OpenApi.Models;

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

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

这是非常奇怪的解决方法,但这是我花费大量时间后发现的唯一解决方法。

答案 6 :(得分:-1)

只需安装软件包Microsoft.OpenApi即可解决该问题