我有3个项目:
System.IdentityModel.Tokens.Jwt (5.4.0)
nuget包。在两个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标准版?我错过了什么?
扩展了上述评论。
许多NuGet包确实包含不同目标平台的不同程序集(例如netxx和netstandardxx),并且这些程序集不可互换。
因此,当项目结构如下时,您遇到了问题,
net472项目--depends - > netstandard20项目--depends on - > System.IdentityModel.Tokens.Jwt(netstandard20)
因为这样,net472项目会消耗NuGet包的netstandard20副本,从而触发错误。
有几种方法可以解决它,而您的解决方案只是其中之一,即将netstandard20项目修改为多目标(netstandard20和net461)。这告诉NuGet为net472项目提供正确的程序集,然后一切都开始工作。