Microsoft.AspNetCore.Http.Features 拆分

Microsoft.AspNetCore.Http.Features 已拆分为以下两个程序集:

  • Microsoft.AspNetCore.Http.Features
  • Microsoft.Extensions.Features

有关讨论,请参阅 GitHub 问题 dotnet/aspnetcore#32307

已引入的版本

ASP.NET Core 6.0

旧行为

Microsoft.AspNetCore.Http.Features 5.0 在 ASP.NET 共享框架和 NuGet 包中提供。 Microsoft.AspNetCore.Http.Features 5.0 面向 .NET 4.6.1、.NET Standard 2.0 和 .NET 5。

新行为

Microsoft.AspNetCore.Http.Features 6.0 仅在 ASP.NET 共享框架中提供,而不是作为 NuGet 包提供。 它仅面向 .NET 6。

Microsoft.Extensions.Features 6.0 同时作为 ASP.NET 共享框架和 NuGet 包提供。 它面向 .NET 4.6.1、.NET Standard 2.0 和 .NET 6。

以下类型已移至最新的 Microsoft.Extensions.Features 程序集:

这些类型仍在命名空间中 Microsoft.AspNetCore.Http.Features ,并且已添加类型转发以保持兼容性。

更改原因

由于两个原因引入了此更改:

  • 允许在组件之间更广泛地共享核心类型。
  • 允许 Microsoft.AspNetCore.Http.Features 中的其余特定于 Http 的组件利用新的运行时和语言功能。

升级到 ASP.NET Core 6.0 时,删除 Microsoft.AspNetCore.Http.Features 的任何包引用。 仅在需要时添加 Microsoft.Extensions.Features 的包引用。

对于需要使用 Microsoft.AspNetCore.Http.Features 中的类型的类库,请改为添加 FrameworkReference 项:

<ItemGroup>
  <FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>

有关添加框架引用的详细信息,请参阅 使用 ASP.NET Core 共享框架

具有过期引用的库可能会遇到 TypeLoadException 或以下错误:

错误 CS0433:“IFeatureCollection”类型同时存在于“Microsoft.AspNetCore.Http.Features”版本=5.0.0.0,文化=中性,公共密钥标记=adb9793829ddae60 和“Microsoft.Extensions.Features”版本=6.0.0.0,文化=中性,公共密钥标记=adb9793829ddae60

若要解决此错误,请将 Microsoft.AspNetCore.App FrameworkReference 添加到任何受影响的项目。

有关问题,请参阅 dotnet/aspnetcore#32307

受影响的 API