我有3个项目:
System.IdentityModel.Tokens.Jwt (5.4.0)
nuget程序包。在两个api中都引用了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.
不是应该同时在.NETFramework和.NET核心中支持.NEtStandard吗?我错过了什么?
答案 0 :(得分:1)
扩展了上面的评论。
许多NuGet软件包确实包含用于不同目标平台的不同程序集(例如netxx和netstandardxx),并且这些程序集不可互换。
因此,当项目结构如下时,您遇到了一个问题,
net472项目-取决于-> netstandard20项目-取决于-> System.IdentityModel.Tokens.Jwt(netstandard20)
由于这种方式,net472项目消耗了NuGet包的netstandard20副本,从而触发了错误。
有多种解决方法,您的解决方案只是其中之一,它可以将netstandard20项目修改为多目标(netstandard20和net461)。这告诉NuGet为net472项目提供适当的装配,然后一切开始工作。