2017-08-31 178 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的項目/文件夾?