包 Microsoft.AspNetCore.Authentication.JwtBearer 5.0.0 与 netcoreapp3.1 不兼容,但它的目标是 net 5.0

Package Microsoft.AspNetCore.Authentication.JwtBearer 5.0.0 is not compatible with netcoreapp3.1 yet it's targeting net 5.0

我正在从 .Net Core 3.1 迁移到 .NET 5.0。

我不断收到此错误消息:

Package Microsoft.AspNetCore.Authentication.JwtBearer 5.0.0 is not compatible with netcoreapp3.1 (.NETCoreApp,Version=v3.1) / win-x86. Package Microsoft.AspNetCore.Authentication.JwtBearer 5.0.0 supports: net5.0 (.NETCoreApp,Version=v5.0)

我明白它在说什么,但我不知道它为什么这么说。

我的项目以 .NET 5.0 为目标。

我的 csproj 文件如下所示:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net5.0</TargetFramework>
    <UserSecretsId>5e2f8086-7a94-402a-bd2a-4160e9236c8f</UserSecretsId>
  </PropertyGroup>


 <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.Authentication" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="5.0.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Abstractions" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Formatters.Json" Version="2.2.0" />
    <PackageReference Include="Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation" Version="5.0.0" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="5.0.0" />
  </ItemGroup>

</Project>

我不确定它为什么告诉我 3.1。

我手动删除了 bin 和 obj 文件夹,尝试更新所有 nuget 包和 clean/rebuild 项目,但每个 time.v

我都遇到了同样的问题

我在 Visual Studio 16.8.2.

编辑

我要指出,这个错误不是编译器错误!如果我在 Visual Studio 中调试,网站运行良好。此错误消息仅在我尝试发布时出现

首先,我只是快速浏览了一下,我认为这可能与您有一些版本不支持 3.1 的库有关,这就是您收到错误的原因。

但只是为了确定:There is a Microsoft guide for this specific migration

您可以按照以下步骤解决您的问题。

  1. 下载 NET 5.0 SDK here

  2. 您需要 Visual Studio 16.8 或更高版本才能在 Windows 上使用 .NET 5.0。请确认您的 VS 版本。

  3. 包裹:<PackageReference Include="Microsoft.AspNetCore.Mvc" Version="2.2.0" />是 已过时,请删除项目文件中的引用。

  4. 清理并重建。

真尴尬

发布的目标框架仍设置为 .NET Core 3.1

您可以安装 microsoft.aspnetcore.authentication.jwtbearer 版本 3.1.x 如果您还没有升级到版本 5.

,请单击 nuget 中的版本下拉列表