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.
Azione consigliata
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.