.NET 7 中应使用哪个包对 API 控制器进行版本控制:Microsoft.AspNetCore.Mvc.Versioning 或 Asp.Versioning.Http?

Kel*_*vZh 4 asp.net-core asp.net-core-webapi aspnet-api-versioning

我在一个项目中使用 NET 7,并且有一个关于使用哪个包进行版本控制 API 控制器的问题。有两个包 Microsoft.AspNetCore.Mvc.Versioning 和 Asp.Versioning.Http 哪一个更适合 ASP.NET Core 7?

“Microsoft.AspNetCore.Mvc.Versioning”包的版本为5.1.0,我相信它适用于.NET 5,而“Asp.Versioning.Http”包的版本为7.0.0,似乎使用第二个包是更优选的。但文档显示第二个包也用于 ASP.NET,这让我很困惑,似乎这个包是从 .NET Framework 过渡到 .NET Core 所必需的

Chr*_*nez 18

您想要的控制器支持包是:

Asp.版本控制.Mvc

不要让这个名字欺骗了你。没有专门支持 UI 堆栈的 API 版本控制的包。

请记住,ASP.NET Web API 是一个平台,但有时人们会提到在 ASP.NET Core 中创建Web API。这是两件不同的事情。这些平台大多不兼容,因此具有单独的实现。ASP.NET Web API始终指旧平台,而ASP.NET Core始终指新平台。它们都是 ASP.NET 的不同版本。如果您可以链接到的某些特定文档令人困惑,请指出,以便进行更新。

以下原始软件包现已弃用,仅进行维护:

平台 包裹 版本 TFM
ASP.NET Web API Microsoft.AspNet.WebApi.版本控制 <= 5.xx 网络45
ASP.NET Web API Microsoft.AspNet.WebApi.Versioning.ApiExplorer <= 5.xx 网络45
ASP.NET Web API Microsoft.AspNet.OData.版本控制 <= 5.xx 网络45
ASP.NET Web API Microsoft.AspNet.OData.Versioning.ApiExplorer <= 5.xx 网络45
ASP.NET 核心 Microsoft.AspNetCore.Mvc.版本控制 <= 5.xx netcoreapp3.1、net5.0
ASP.NET 核心 Microsoft.AspNetCore.Mvc.ApiExplorer <= 5.xx netcoreapp3.1、net5.0
ASP.NET 核心 微软.AspNetCore.OData <= 5.xx netcoreapp3.1、net5.0
ASP.NET 核心 Microsoft.AspNetCore.OData.ApiExplorer <= 5.xx netcoreapp3.1、net5.0

所有新功能和平台支持将是:

平台 包裹 版本 TFM
全部 Asp.Versioning.Abstracts 6.0.0+ net6.0+、netstandard1.0、netstandard2.0
ASP.NET Web API Asp.版本控制.WebApi 6.0.0+ 网络45、网络472
ASP.NET Web API Asp.Versioning.WebApi.ApiExplorer 6.0.0+ 网络45、网络472
ASP.NET Web API Asp.版本控制.WebApi.OData 6.0.0+ 网络45、网络472
ASP.NET Web API Asp.版本控制.WebApi.OData.ApiExplorer 6.0.0+ 网络45、网络472
ASP.NET 核心 Asp.版本控制.Http 1 6.0.0+ net6.0+
ASP.NET 核心 Asp.版本控制.Mvc 2 6.0.0+ net6.0+
ASP.NET 核心 Asp.版本控制.Mvc.ApiExplorer 3 6.0.0+ net6.0+
ASP.NET 核心 Asp.版本控制.OData 6.0.0+ net6.0+
ASP.NET 核心 Asp.版本控制.OData.ApiExplorer 6.0.0+ net6.0+
全部 Asp.Versioning.Http.Client 6.0.0+ net6.0+、netstandard1.1、netstandard2.0

[1]支持Minimal API 的基础库
[2]支持控制器的 MVC Core
[3]支持探索Minimal API和控制器

  • wiki 现在在迁移指南中包含此信息:https://github.com/dotnet/aspnet-api-versioning/wiki/Migration#package-identifiers (3认同)