迁移到.NET Core 3.0后出现问题

bor*_*ris 7 c# swagger asp.net-core asp.net-core-3.0 .net-core-3.0

迁移到.NET Core 3.0之后。我在配置摇摇欲坠时遇到问题。

以下是我的配置。

  public void ConfigureServices(IServiceCollection services)
  {       

       services.AddMvc().SetCompatibilityVersion(Microsoft.AspNetCore.Mvc.CompatibilityVersion.Version_3_0).AddNewtonsoftJson();


       services.AddSwaggerGen(setup =>
       {
             setup.SwaggerDoc(
                "v1", 
                 new Info 
                 {  
                     Title = "Docker", 
                     Version = "v1" 
                 });
        });
  }

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
       Configuration.SwaggerOptions swaggerOptions = new Configuration.SwaggerOptions();

       _configuration.GetSection("SwaggerOptions").Bind(swaggerOptions);

       app.UseSwagger(options =>
       {
            options.RouteTemplate = swaggerOptions.JsonRoot;
       });

       app.UseSwaggerUI(options =>
       {
           options.SwaggerEndpoint(swaggerOptions.UiEndpoint, swaggerOptions.ApiDescription);
       });
}
Run Code Online (Sandbox Code Playgroud)

以下是例外

TypeLoadException:无法从程序集“ Microsoft.AspNetCore.Mvc.Formatters.Json”加载类型“ Microsoft.AspNetCore.Mvc.MvcJsonOptions”

有解决方案吗?

Ale*_*ith 13

在aspnet / AspNetCore github存储库上进行了讨论,讨论如下:将MvcJsonOptions还原为ASP.NET Core 3.0作为类型转发?

这表明问题已解决。

我建议您确保已安装最新的Swashbuckle.AspnetCore软件包:https ://www.nuget.org/packages/Swashbuckle.AspNetCore/

在正式的asp.net核心文档中,它指出:

Install-Package Swashbuckle.AspNetCore -Version 5.0.0-rc2

https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.0&tabs=visual-studio

因此,我建议您需要安装预发行版本,在撰写本文时,仅4.X是稳定的,而5.0.0-rc3是最新的。

  • @ inliner49er信息对象已更改为OpenApiInfo,而OpenApiInfo的名称空间为Microsoft.OpenApi.Models。 (8认同)