我们有使用 Swagger 的 .net core 2.1 mvc webapi 项目。我们使用以下软件包:
<PackageReference Include="Swashbuckle.AspNetCore" Version="3.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="3.0.0" />
<PackageReference Include="Swashbuckle.AspNetCore.Filters" Version="4.3.0" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.ApiExplorer" Version="2.1.2" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.Versioning.ApiExplorer" Version="2.2.0" />
<PackageReference Include="Microsoft.Extensions.DependencyInjection" Version="2.1.1" />
Run Code Online (Sandbox Code Playgroud)
swashbuckle 的配置方式如下:
services.AddMvcCore().AddVersionedApiExplorer();
services.AddApiVersioning();
services.AddSwaggerGen();
Run Code Online (Sandbox Code Playgroud)
在这种设置/swagger/v1/swagger.json中一切正常(具有所有操作和定义,并且 UI 呈现正确 -> 具有所有控制器和动作等)
我们正在尝试将我们的 .net 核心项目从 2.1 迁移到 2.2 .net 核心。
为了做到这一点(没有警告),我们需要将Microsoft.AspNetCore.Mvc.ApiExplorernuget 从 2.1.2升级到 2.2.0。
在此 nuget 更新之后 swagger.json ( /swagger/v1/swagger.json) 不包含任何"paths": {}and"definitions": {}这导致 swagger UI 不显示控制器/操作(它呈现:No operations defined in …