.NetStandard nuget包与.NETFramework有关的问题

问题描述 投票:0回答:1

我有3个项目:

  1. .NETStandard 2.0中的SDK和我安装了System.IdentityModel.Tokens.Jwt (5.4.0) nuget包。
  2. .NETCore 2.1中的ASP.NET Core API
  3. .NETFramework 4.7.2中的ASP.NET API

在两个apis中都引用了sdk,我在.NETCore api中没有任何问题,但我在.NetFramework api中出错:

Could not load file or assembly 'Microsoft.IdentityModel.Tokens, Version=5.4.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.

它不应该在.NET Framework和.NET核心中支持.NEt标准版?我错过了什么?

asp.net jwt nuget-package .net-standard
1个回答
1
投票

扩展了上述评论。

许多NuGet包确实包含不同目标平台的不同程序集(例如netxx和netstandardxx),并且这些程序集不可互换。

因此,当项目结构如下时,您遇到了问题,

net472项目--depends - > netstandard20项目--depends on - > System.IdentityModel.Tokens.Jwt(netstandard20)

因为这样,net472项目会消耗NuGet包的netstandard20副本,从而触发错误。

有几种方法可以解决它,而您的解决方案只是其中之一,即将netstandard20项目修改为多目标(netstandard20和net461)。这告诉NuGet为net472项目提供正确的程序集,然后一切都开始工作。

© www.soinside.com 2019 - 2024. All rights reserved.