将classlib项目升级到netstandard 2.1时遇到问题。
我有一个具有以下.csproj配置的classlib项目。该项目包含基于net core 3.0(以前为2.0)软件包的自定义功能。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.1</TargetFramework>
</PropertyGroup>
<PropertyGroup>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<CopyLocalLockFileAssemblies>true</CopyLocalLockFileAssemblies>
<GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AutoMapper.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
<PackageReference Include="MediatR.Extensions.Microsoft.DependencyInjection" Version="7.0.0" />
<PackageReference Include="MediatR" Version="7.0.0" />
<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="3.0.0" />
</ItemGroup>
</Project>
运行dotnet restore时,出现以下错误:
error: Package Microsoft.AspNetCore.Authentication.JwtBearer 3.0.0 is not compatible with netstandard2.1 (.NETStandard,Version=v2.1). Package Microsoft.AspNetCore.Authentication.JwtBearer 3.0.0 supports: netcoreapp3.0 (.NETCoreApp,Version=v3.0)
我尝试更改TargetFramework属性以同时支持netstandard2.1和netcoreapp3.0:<TargetFrameworks>netstandard2.1;netcoreapp3.0</TargetFrameworks>
但是,我仍然收到相同的错误。
我在这里想念什么?
答案 0 :(得分:1)
当我尝试在VSCode中添加程序包“ microsoft.aspnetcore.authentication.jwtbearer 3.0.0”时,我遇到了类似的问题。它把我扔了 错误:软件包X 3.0.0与netcore版本不兼容。
我要做的唯一一件事就是将jwtbearer软件包版本降级到一个较低的版本-2.2.0 奏效了!
答案 1 :(得分:0)
我找到了解决方案。我必须只针对netcoreapp3.0,而不是netstandard2.1和netcoreapp3.0。