Fractionnement de Microsoft.AspNetCore.Http.Features

Microsoft.AspNetCore.Http.Features a été fractionné en deux assemblys suivants :

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

Pour plus d’informations, consultez le problème GitHub dotnet/aspnetcore#32307.

Version introduite

ASP.NET Core 6.0

Ancien comportement

Microsoft.AspNetCore.Http.Features 5.0 a été fourni dans l’infrastructure partagée ASP.NET et sous forme de package NuGet. Microsoft.AspNetCore.Http.Features 5.0 ciblait .NET 4.6.1, .NET Standard 2.0 et .NET 5.

Nouveau comportement

Microsoft.AspNetCore.Http.Features 6.0 n’est fourni que dans l’infrastructure partagée ASP.NET et non sous forme de package NuGet. Il cible .NET 6 uniquement.

Microsoft.Extensions.Features 6.0 est fourni dans l’infrastructure partagée ASP.NET et en tant que package NuGet. Il cible .NET 4.6.1, .NET Standard 2.0 et .NET 6.

Les types suivants ont été déplacés vers le nouvel assembly Microsoft.Extensions.Features :

Ces types se trouvent toujours dans l’espace de noms Microsoft.AspNetCore.Http.Features et des transferts de type ont été ajoutés à des fins de compatibilité.

Raison du changement

Ce changement a été introduit pour deux raisons :

  • Permet aux types principaux d’être partagés plus largement entre les composants.
  • Permet aux composants Http restants dans Microsoft.AspNetCore.Http.Features de tirer parti des nouvelles fonctionnalités de runtime et de langage.

Lors de la mise à niveau vers ASP.NET Core 6.0, supprimez toutes les références de packages pour Microsoft.AspNetCore.Http.Features. Ajoutez une référence de package pour Microsoft.Extensions.Features uniquement si nécessaire.

Pour les bibliothèques de classes qui doivent utiliser les types à partir de Microsoft.AspNetCore.Http.Features, ajoutez un élément FrameworkReference à la place :

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

Pour plus d’informations sur l’ajout de la référence d’infrastructure, consultez Utiliser l’infrastructure partagée ASP.NET Core.

Les bibliothèques avec des références obsolètes peuvent rencontrer une erreur TypeLoadException ou l’erreur suivante :

Erreur CS0433 Le type « IFeatureCollection » existe dans « Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' et 'Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'

Pour résoudre l’erreur, ajoutez un FrameworkReference à Microsoft.AspNetCore.App pour l’un des projets affectés.

Pour les questions, consultez dotnet/aspnetcore#32307.

API affectées