Asp.net web api 无法加载文件或程序集';Microsoft.IdentityModel.Tokens,版本=5.2.0.0

Asp.net web api 无法加载文件或程序集';Microsoft.IdentityModel.Tokens,版本=5.2.0.0,asp.net-web-api,jwt,owin,Asp.net Web Api,Jwt,Owin,我正在尝试使用VS2015将OWIN JWT添加到webapi项目中。参考显示了Microsoft.Owin.Security.Jwt,版本=4.0.0.0和Microsoft.IdentityModel.Tokens版本=5.3.0.0。下面是运行时的错误。我在源代码中找不到5.2.0.0 === Pre-bind state information === LOG: DisplayName = Microsoft.IdentityModel.Tokens, Version=5.2.0.0,

我正在尝试使用VS2015将OWIN JWT添加到webapi项目中。参考显示了
Microsoft.Owin.Security.Jwt,版本=4.0.0.0
Microsoft.IdentityModel.Tokens版本=5.3.0.0
。下面是运行时的错误。我在源代码中找不到
5.2.0.0

=== Pre-bind state information ===
LOG: DisplayName = Microsoft.IdentityModel.Tokens, Version=5.2.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
 (Fully-specified)
LOG: Appbase = file:///C:/Users/xxx/Documents/xxx/WebApi/
LOG: Initial PrivatePath = C:\Users\xxx\Documents\xxx\WebApi\bin
Calling assembly : Microsoft.Owin.Security.Jwt, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35.

有什么想法吗?

首先,您应该了解发生的异常不仅限于Microsoft.IdentityModel.Tokens程序集,也不限于Visual Studio版本。这个问题在程序集引用中很常见

常见的原因是:您在项目中引用的版本与执行(bin文件夹)中使用的“DLL”包中的版本不同。然而,我认为这比手工操作要远得多

1-我可以根据程序集名称进行猜测。您的解决方案中有多个项目,并且最后使用NuGet安装程序集的版本高于其他项目(当然使用NuGet)

尝试验证所有项目中已安装的软件包,并将其更新为最新版本=5.3.0.0

另一个可能的原因是:此软件包需要Microsoft.IdentityModel.Logging 尝试执行上文第1点中解释的相同操作