Condividi tramite


Microsoft.AspNetCore.Http.Features suddiviso

Microsoft.AspNetCore.Http.Features è stato suddiviso nei due assembly seguenti:

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

Per la discussione, vedere il problema di GitHub dotnet/aspnetcore#32307.

Versione introdotta

ASP.NET Core 6.0

Comportamento precedente

Microsoft.AspNetCore.Http.Features 5.0 fornito sia nel framework condiviso ASP.NET che come pacchetto NuGet. Microsoft.AspNetCore.Http.Features 5.0 è destinato a .NET 4.6.1, .NET Standard 2.0 e .NET 5.

Nuovo comportamento

Microsoft.AspNetCore.Http.Features 6.0 viene fornito solo nel framework condiviso ASP.NET, non come pacchetto NuGet. È destinato solo a .NET 6.

Microsoft.Extensions.Features 6.0 viene fornito sia nel framework condiviso ASP.NET sia come pacchetto NuGet. È destinato a .NET 4.6.1, .NET Standard 2.0 e .NET 6.

I tipi seguenti sono stati spostati nel nuovo assembly Microsoft.Extensions.Features:

Questi tipi sono ancora presenti nello spazio dei nomi Microsoft.AspNetCore.Http.Features e i tipi forward sono stati aggiunti per ragioni di compatibilità.

Motivo della modifica

Questa modifica è stata introdotta per due motivi:

  • Consente di condividere i tipi di base in modo più ampio tra i componenti.
  • Consente ai componenti specifici http rimanenti in Microsoft.AspNetCore.Http.Features di sfruttare le nuove funzionalità di runtime e linguaggio.

Quando si esegue l'aggiornamento a ASP.NET Core 6.0, rimuovere tutti i riferimenti ai pacchetti per Microsoft.AspNetCore.Http.Features. Aggiungere un riferimento al pacchetto per Microsoft.Extensions.Features solo se necessario.

Per le librerie di classi che devono utilizzare i tipi di Microsoft.AspNetCore.Http.Features, aggiungere invece un elemento FrameworkReference:

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

Per altre informazioni sull'aggiunta del riferimento al framework, vedere Utilizzare il framework condiviso di ASP.NET Core.

Le librerie con riferimenti non aggiornati possono comportare un TypeLoadException oppure l'errore seguente:

Errore CS0433 Il tipo 'IFeatureCollection' esiste sia in 'Microsoft.AspNetCore.Http.Features, Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' sia in 'Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'

Per risolvere l'errore, aggiungere un FrameworkReference a Microsoft.AspNetCore.App a uno dei progetti interessati.

Per domande, vedere dotnet/aspnetcore#32307.

API interessate