You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework 4.8独立WebAPI项目Swagger文档生成咨询

为.NET Framework 4.8独立WebAPI项目生成Swagger文档(控制台启动场景)

步骤1:给独立WebAPI项目安装依赖并配置Swagger生成规则

  • 在WebAPI项目中安装以下NuGet包:
    Swashbuckle.AspNetCore.SwaggerGen、Swashbuckle.AspNetCore.Swagger、Swashbuckle.AspNetCore.SwaggerUI
  • 打开WebAPI项目属性,勾选生成XML文档文件,将输出路径设为项目默认输出目录,并把该XML文件的“复制到输出目录”属性设为“如果较新则复制”。
  • 添加Swagger配置类(也可直接在控制台启动项中配置):
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using System.Reflection;

public static class SwaggerSetup
{
    public static void ConfigureSwaggerGen(SwaggerGenOptions options)
    {
        options.SwaggerDoc("v1", new OpenApiInfo
        {
            Title = "你的WebAPI服务",
            Version = "v1",
            Description = ".NET Framework 4.8 WebAPI接口文档"
        });

        // 加载XML注释文件
        var xmlFileName = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
        var xmlFilePath = Path.Combine(AppContext.BaseDirectory, xmlFileName);
        options.IncludeXmlComments(xmlFilePath, true); // true表示包含控制器注释
    }
}

步骤2:在控制台启动项目中集成Swagger中间件

  • 控制台项目需要安装OWIN及Swagger相关包:Microsoft.Owin.Hosting、Microsoft.Owin.Cors、Swashbuckle.AspNetCore.SwaggerUI
  • 新建或修改OWIN启动类Startup.cs,配置WebAPI和Swagger:
using Microsoft.Owin;
using Owin;
using Swashbuckle.AspNetCore.Swagger;
using System.Web.Http;
using System.IO;
using System.Reflection;

[assembly: OwinStartup(typeof(ConsoleHost.Startup))]
namespace ConsoleHost
{
    public class Startup
    {
        public void Configuration(IAppBuilder app)
        {
            var apiConfig = new HttpConfiguration();
            
            // 导入WebAPI项目的路由配置
            WebApiConfig.Register(apiConfig);

            // 配置Swagger
            apiConfig.EnableSwagger(c =>
            {
                c.SingleApiVersion("v1", "你的WebAPI服务");
                // 指定WebAPI项目的XML注释文件路径(控制台输出目录下的对应文件)
                var xmlPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "YourApiProjectName.xml");
                if (File.Exists(xmlPath))
                {
                    c.IncludeXmlComments(xmlPath);
                }
            })
            .EnableSwaggerUi(c =>
            {
                // 设置SwaggerUI访问路径,默认是/swagger
                c.RoutePrefix = "swagger";
            });

            // 启用CORS和WebAPI
            app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
            app.UseWebApi(apiConfig);
        }
    }
}

步骤3:启动验证

  • 启动控制台程序,访问http://localhost:你的服务端口/swagger,即可查看生成的Swagger文档并测试接口。

注意事项

  • 确保WebAPI项目的DLL和XML文件被复制到控制台项目的输出目录,可通过添加项目引用或手动复制实现。
  • 如果遇到XML文件找不到的问题,先检查控制台输出目录是否存在对应文件,或临时改用绝对路径调试。

内容的提问来源于stack exchange,提问作者AnthonyDa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 05:07:29