将 ASP.NET Core 3.1 应用程序升级到 .NET 8 后,我无法再启动我的应用程序。由于我在文档中找不到任何内容,也找不到它的任何用法,我想知道为什么它会抱怨这个:
System.TypeLoadException:无法从程序集“Microsoft.AspNetCore.Http.Features,Version=8.0.0.0,Culture=neutral,PublicKeyToken=adb9793829ddae60”加载类型“Microsoft.AspNetCore.Http.Features.IHttpSendFileFeature”。
在 Microsoft.VisualStudio.Web.BrowserLink.BrowserLinkMiddleware.ExecuteWithFilter(IHttpSocketAdapter insertScriptSocket, String requestId, HttpContext httpContext)
在 System.Runtime.CompilerServices.AsyncMethodBuilderCore.Start[TStateMachine](TStateMachine& stateMachine)
在 Microsoft.VisualStudio.Web.BrowserLink.BrowserLinkMiddleware.ExecuteWithFilter(IHttpSocketAdapter insertScriptSocket,字符串 requestId,HttpContext httpContext)
在 Microsoft.VisualStudio.Web.BrowserLink.BrowserLinkMiddleware.Invoke(HttpContext 上下文)
在 Microsoft.AspNetCore.Localization.RequestLocalizationMiddleware.Invoke(HttpContext 上下文)
在 Microsoft.WebTools.BrowserLink.Net.BrowserLinkMiddleware.InvokeAsync(HttpContext 上下文)
在 Microsoft.AspNetCore.Watch.BrowserRefresh.BrowserRefreshMiddleware.InvokeAsync(HttpContext 上下文)
在 Microsoft.AspNetCore.Server.IIS.Core.IISHttpContextOfT`1.ProcessRequestAsync()
由于我刚刚分配了应用程序,对 ASP.NET Core 不太熟悉,我希望有人能提示我正确的方向。
我猜这是由于 .NET6 中引入的重大更改 - https://learn.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/6.0/microsoft-aspnetcore-http-功能包分割。
尝试从项目中删除对 nuget 包 Microsoft.AspNetCore.Http.Features 的任何引用。
如果您仍然需要使用该类型,请将框架引用添加到您的 .csproj 文件中。
<ItemGroup>
<FrameworkReference Include="Microsoft.AspNetCore.App" />
</ItemGroup>