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。