2017-08-31 146 views
0

无法加载文件或程序集 'System.IdentityModel.Tokens.Jwt, 版本= 4.0.0.0,文化=中性公钥= 31bf3856ad364e35' 或 一个的依赖关系。找到的程序集清单定义 与程序集引用不匹配。 (来自HRESULT的例外: 0x80131040)System.IdentityModel.Tokens.Jwt版本不匹配

我以某种方式返回到DLL地狱。

我有,我想通过我们的CI部署一个asp.net MVC应用程序:

  1. 的TeamCity(2017.1.3)与Octopusplugin(TeamCity Plugin
  2. 章鱼部署到蔚蓝的网站应用

我已经得到了相同的管道为其他网络应用程序工作,但这一个MVC应用程序,利用System.IdentityModel.Tokens.Jwt,版本4.0.4.403061554

我按照预期在本地运行应用程序,并引用FileAssembly版本为4.0.4.403061554。但是,当团队城市构建nuget包并下载并解压时,System.IdentityModel.Tokens.Jwt文件程序集版本设置为5.1.4.216,这不是我所期望的。

我已经钻完了我所有的软件包耗尽情况,没有一个引用此版本的dll。

我已经通过我的所有文件搜索5.1.4的任何引用,什么都不存在。

在TeamCity中刷新包时,我也检查了功能Disable looking up packages from local machine cache

回答

0

这里没有一个直接的答案,但有一些想法可能有助于正确的方向。

也许这个包在任何其他项目或nuget包中具有较低级别的依赖关系,它们一起构建并因此最新版本进入构建目录?刚刚注意到5.1.4是System.IdentityModel.Tokens.Jwt的最新版本。

我推测您在版本4中采用了BindingRedirect。是否有制动变化?你不能转用最新版本吗?

你看过build server的生成文件夹吗?也许你可以缩小版本5.1.4的项目/文件夹?