ASP.NET Core 2.0安装Swashbuckle后未生成SwaggerConfig.cs的问题咨询
关于ASP.NET Core 2.0中SwaggerConfig.cs缺失的问题解答
嘿,这个问题其实是版本差异导致的,别慌!
首先得明确:SwaggerConfig.cs是Swashbuckle针对传统ASP.NET Framework(比如MVC 5这类非Core项目)的配置文件,而你用的是ASP.NET Core 2.0,这两个版本的Swashbuckle配置体系完全不同,所以安装后不会自动生成这个文件。
那些提到App_Start下SwaggerConfig.cs的教程,大概率是针对传统ASP.NET项目的,并不是给ASP.NET Core准备的,所以才会和你的实际情况不符。
在ASP.NET Core 2.0里,Swagger的所有配置都集中在Startup.cs中,正确的操作步骤是这样的:
- 确保你安装的是适配Core的包:要安装
Swashbuckle.AspNetCore(别装成针对Framework的Swashbuckle包了) - 在
Startup.cs的ConfigureServices方法中注册Swagger服务:services.AddSwaggerGen(c => { // 定义API文档的基本信息 c.SwaggerDoc("v1", new Info { Title = "你的API名称", Version = "v1" }); // 这里还可以添加更多配置,比如读取XML注释、配置安全认证等 }); - 在
Startup.cs的Configure方法中启用Swagger中间件,让UI可以访问:app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "你的API V1"); // 如果想让SwaggerUI直接在网站根路径(比如https://yourdomain.com/)访问,可以加这句: // c.RoutePrefix = string.Empty; });
如果你觉得把所有配置都堆在Startup.cs里太乱,想模仿传统SwaggerConfig.cs的模块化管理方式,也可以自己手动创建一个静态类来封装配置逻辑,比如:
public static class SwaggerConfig { public static void ConfigureSwaggerGen(SwaggerGenOptions options) { options.SwaggerDoc("v1", new Info { Title = "你的API名称", Version = "v1" }); // 在这里添加其他Swagger配置项,比如注释、过滤规则等 } }
然后在Startup.cs里调用这个方法:
services.AddSwaggerGen(SwaggerConfig.ConfigureSwaggerGen);
这样就实现了和传统SwaggerConfig.cs类似的模块化配置,但这个文件是需要你自己手动创建的,框架不会自动生成哦。
内容的提问来源于stack exchange,提问作者phad
相关产品推荐
相关产品推荐

