【问题标题】:Swagger (Swashbuckle) on ASP.NET Core MVC targeting .Net Framework 4.6.1针对 .Net Framework 4.6.1 的 ASP.NET Core MVC 上的 Swagger (Swashbuckle)
【发布时间】:2016-07-08 11:01:44
【问题描述】:

我正在将 WebApi2 项目迁移到 MVC6。 由于我们在 .NET 4.6.1 中编写了其他依赖项,因此我们需要针对相同的版本。

"frameworks": {
"net461": {}}

我添加了依赖项:

"Swashbuckle": "5.3.2",

但问题是无法将其连接/注册到 ASP.NET Core MVC。

有什么办法吗?

【问题讨论】:

  • 请注意,没有 MVC6 了。 MVC6 标记保留用于基于旧 ASP.NET MVC Webstack 的可能的未来版本。您所指的现在称为 ASP.NET Core MVC 并使用版本号 1.0,因为它是基于 .NET Core 的完全重写,并且与旧的 ASP.NET MVC webstack 不兼容

标签: .net asp.net-core asp.net-core-mvc swagger swashbuckle


【解决方案1】:

使用 ASP.NET Core 你应该使用 Swashbuckle https://github.com/domaindrivendev/Ahoy 的这个端口

你会添加/使用扩展方法:

public void ConfigureServices(IServiceCollection services)
{
    ... Configure MVC services ...

    // Inject an implementation of ISwaggerProvider with defaulted   settings applied
    services.AddSwaggerGen();
}

public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
    ... Enable MVC middleware ...

    // Enable middleware to serve generated Swagger as a JSON endpoint
    app.UseSwagger();

    // Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
    app.UseSwaggerUi();
}

【讨论】:

  • 关于为什么 UseSwagger() 和 useSwaggerUI() 的扩展方法不可用的任何好主意?我曾尝试使用 Swashbuckle.AspNetCore;/using Swashbuckle.AspNetCore.Swagger;/using Swashbuckle.AspNetCore.SwaggerUI; 进行引用;
【解决方案2】:

Swashbuckle 5.x 版本不支持 ASP.NET Core MVC。您必须使用支持 ASP.NET Core 的新 Swashbuckle 6.x 版本。

唯一支持 ASP.NET Core 1.0 RTM 的版本是6.0.0-beta901

所以你需要把它添加到你的 project.json 文件中

"Swashbuckle": "6.0.0-beta901"

【讨论】:

    【解决方案3】:

    与 .Net Framework 4.6 兼容的 Swashbuckle 版本。是5.6.0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-07-29
      • 1970-01-01
      • 2018-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多