.NET 7 API控制器版本控制:选Microsoft.AspNetCore.Mvc.Versioning还是Asp.Versioning.Http?
.NET 7 API控制器版本控制包选择指南
直接结论:Asp.Versioning.Http(7.0.0版本)是你.NET 7项目的最优选择,具体原因如下:
- 旧包
Microsoft.AspNetCore.Mvc.Versioning(5.1.0版本)是ASP.NET Core早期版本(如.NET 5及之前)的遗留版本控制包,目前已被官方弃用,不再作为主流推荐方案。 Asp.Versioning.Http是.NET 6+(含.NET 7)官方主推的API版本控制核心包,命名空间调整为Asp.Versioning系列是为了统一跨.NET平台的版本控制方案——文档提到支持ASP.NET是因为它也能兼容传统.NET Framework项目(通过适配逻辑),但这完全不影响它作为现代.NET(.NET 5+)项目的首选,它对.NET 7的适配是原生且完善的。
如果你的项目是基于MVC控制器的API,还可以额外安装Asp.Versioning.Mvc包,它是Asp.Versioning.Http的扩展,提供更贴合MVC场景的版本控制功能(比如路由版本约束、控制器属性版本标记等)。
简单配置示例(Program.cs):
builder.Services.AddApiVersioning(options => { // 响应头返回支持的API版本 options.ReportApiVersions = true; // 未指定版本时使用默认版本 options.AssumeDefaultVersionWhenUnspecified = true; options.DefaultApiVersion = new ApiVersion(1, 0); });
内容的提问来源于stack exchange,提问作者KeldibekovZh
相关产品推荐
相关产品推荐

