C# System.IdentityModel.Tokens.Jwt中的类型加载错误

C# System.IdentityModel.Tokens.Jwt中的类型加载错误,c#,.net,asp.net-mvc,C#,.net,Asp.net Mvc,我在运行时看到System.Reflection.ReflectionTypeLoadException: 无法加载类型“System.IdentityModel.Tokens.ISecurityTokenValidator” 从程序集“System.IdentityModel.Tokens.Jwt,版本=5.0.0.127,区域性=中性,PublicKeyToken=31bf3856ad364e35.”:“System.IdentityModel.Tokens.ISecurityTokenVa

我在运行时看到System.Reflection.ReflectionTypeLoadException:

无法加载类型“System.IdentityModel.Tokens.ISecurityTokenValidator” 从程序集“System.IdentityModel.Tokens.Jwt,版本=5.0.0.127,区域性=中性,PublicKeyToken=31bf3856ad364e35.”:“System.IdentityModel.Tokens.ISecurityTokenValidator”

我正在使用System.IdentityModel.Tokens.Jwt版本5.0.0.127(nuget软件包5.0.0)

我尝试使用fuslog查看绑定日志。它在我的bin目录中找到dll,绑定成功(并且是正确的dll)。我还验证了GAC中没有安装此库

我使用VisualStudio的对象浏览器浏览了dll。我发现JwtSecurityTokenHandler继承自ISecurityTokenValidator。根据对象浏览器ISecurityTokenValidToker,它来自Microsoft.IdentityModel.Tokens。(我也在使用该版本的nuget包5.0.0)

我手动浏览了与这两个包相关的各种nuget依赖项(以及我认为有可能相关的项目中的任何其他依赖项)。一切似乎都正常


有人能解释一下在什么情况下不能从程序集中加载类型吗?还有谁能向我解释一下如何正确解决这个特定库的问题吗?

在我的例子中,我从包中删除了“Microsoft.IdentityModel.Protocol.Extensions”。工作起来很有魅力。

您可以添加完整的堆栈跟踪和错误发生的代码吗?您需要返回System.IdentityModel.Tokens.Jwt版本4。他们从v5程序集中删除了一个类,这破坏了一切。读一下这个。基本上,微软删除了一两个类并错误地设置了Nuget依赖版本,这就把事情搞砸了。