为什么我的系统试图从无效版本的程序集加载类型

本文关键字:版本 程序集 加载 类型 无效 我的 系统 为什么 | 更新日期: 2023-09-27 18:06:30

我正在一个使用NHibernate 3和spring for DI的旧系统上工作,我必须对这个解决方案做一些重构。解决方案的一些项目使用NHibernate 1.2,我把它们改成了NHibernate 3。现在整个解决方案中唯一使用的NHibernate版本是3.

现在的问题是,当我试图加载任何web服务的解决方案,系统试图从NHibernate 1.2加载类型,我已经测试了在另一个系统中发布的项目,它工作得很好,它应该是一个问题与我的系统,它只是给我:不能加载类型'NHibernate. event。ListenerType' from assembly 'NHibernate, Version=1.2.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'.

谁能帮我找出为什么CLR试图从未引用的程序集加载类型?

为什么我的系统试图从无效版本的程序集加载类型

感谢每一个试图帮助我的人,但是我找到了答案。

我的系统上有。net反射器,曾经,我用它来反映我的系统上的NHibernate,它的版本1.2.1.4000,它在缓存中创建了我的DLL的副本,它在加载顺序中是首选的。我删除了缓存,现在一切正常

同样的问题在我身上发生过很多次,但不同的dll

我将分享我为摆脱这个问题所采取的步骤

  1. 删除调试和发布文件夹
  2. 删除obj文件夹
  3. 卸载项目并再次加载(右键单击项目并单击卸载,然后右键单击并单击加载项目)
  4. 右键单击解决方案,单击清洁解决方案
  5. 右键单击解决方案并单击重建解决方案

我希望这对你有用

您可以尝试从全局程序集缓存中删除该程序集:

在命令提示符下,输入以下命令:gacuti_nhibernate

Gacutil.exe是Windows SDK套件的一部分。在我的电脑上,它位于C:'Program Files (x86)'Microsoft sdk 'Windows'v8.1A'bin'NETFX 4.5.1 Tools'x64

请检查您的App.config/Web中是否有<bindingRedirect>标记。配置文件。我在ASP中遇到过类似的问题。. NET MVC项目与Newtonsoft.Json.dll,这是通过更新<bindingRedirect>标签的oldVersionnewVersion属性来修复的。https://noodlearoundnet.blogspot.in/2016/09/newtonsoft-json-dll-version-mismatch.html