Microsoft.AspNetCore.Http.Features Aufteilung
Microsoft.AspNetCore.Http.Features wurde in die folgenden beiden Assemblys aufgeteilt:
- Microsoft.AspNetCore.Http.Features
- Microsoft.Extensions.Features
Weitere Informationen finden Sie im GitHub-Issue dotnet/aspnetcore#32307.
Eingeführt in Version
ASP.NET Core 6.0
Altes Verhalten
Microsoft.AspNetCore.Http.Features 5.0 wurde sowohl im ASP.NET freigegebenen Framework als auch als NuGet-Paket ausgeliefert. Microsoft.AspNetCore.Http.Features 5.0 hat .NET 4.6.1, .NET Standard 2.0 und .NET 5 als Ziel.
Neues Verhalten
Microsoft.AspNetCore.Http.Features 6.0 wird nur im ASP.NET freigegebenen Framework und nicht als NuGet-Paket ausgeliefert. Es ist nur auf .NET 6 ausgerichtet.
Microsoft.Extensions.Features 6.0 wird sowohl im ASP.NET freigegebenen Framework als auch als NuGet-Paket ausgeliefert. Ziele sind .NET 4.6.1, .NET Standard 2.0 und .NET 6 ausgerichtet.
Die folgenden Typen wurden in die neue Microsoft.Extensions.Features-Assembly verschoben:
Diese Typen befinden sich weiterhin im Microsoft.AspNetCore.Http.Features
-Namespace, und aus Kompatibilitätsgründen wurden Typ forwards hinzugefügt.
Grund für die Änderung
Diese Änderung wurde aus zwei Gründen eingeführt:
- Ermöglicht die gemeinsame Nutzung der Kerntypen über mehrere Komponenten hinweg.
- Ermöglicht den verbleibenden HTTP-spezifischen Komponenten in Microsoft.AspNetCore.Http.Features die Nutzung neuer Runtime- und Sprachfeatures.
Empfohlene Maßnahme
Entfernen Sie beim Upgrade auf ASP.NET Core 6.0 alle Paketverweise für Microsoft.AspNetCore.Http.Features. Fügen Sie nur bei Bedarf einen Paketverweis für Microsoft.Extensions.Features hinzu.
Fügen Sie für Klassenbibliotheken, die die Typen aus Microsoft.AspNetCore.Http.Features nutzen müssen, stattdessen ein FrameworkReference
-Element hinzu:
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>
Weitere Informationen zum Hinzufügen der Frameworkreferenz finden Sie unter Verwenden des freigegebenen ASP.NET Core-Frameworks.
Bibliotheken mit veralteten Verweisen können auf einen TypeLoadException oder den folgenden Fehler stoßen:
Fehler CS0433 Der Typ "IFeatureCollection" ist in beiden "Microsoft.AspNetCore.Http.Features" vorhanden. Version=5.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60" und "Microsoft.Extensions.Features, Version=6.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60"
Um den Fehler zu beheben, fügen Sie Microsoft.AspNetCore.App eine FrameworkReference
zu einem beliebigen der betroffenen Projekte hinzu.
Gehen Sie bei Fragen zu dotnet/aspnetcore#32307.