无法加载文件或程序集“Microsoft.IdentityModel.Tokens,版本=5.2.0.0

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

我正在尝试使用 VS 2015 将 OWIN JWT 添加到 webapi 项目中。参考文献显示

Microsoft.Owin.Security.Jwt, Version=4.0.0.0
Microsoft.IdentityModel.Tokens Version=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.

请问有什么想法吗?

asp.net-web-api jwt owin
3个回答
7
投票

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

最常见的原因是:您在项目中引用的版本与执行中使用的“DLL”包(bin 文件夹)不同。然而,我认为这比手动发生更进一步。

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

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

另一个潜在的原因是:这个包需要 Microsoft.IdentityModel.Logging 尝试执行上面第 1 点中解释的相同操作。


0
投票

只需经历这个。可能会有帮助。

通过在.csproj文件中添加一行代码解决了这个问题。

<PropertyGroup>
    <_FunctionsSkipCleanOutput>true</_FunctionsSkipCleanOutput>
</PropertyGroup>

无法加载文件或程序集 Microsoft.IdentityModel.Tokens 问题


-1
投票

我删除了解决方案中与 *.Owin 相关的所有软件包,并再次安装相同版本。

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