为什么我的系统试图从无效版本的程序集加载类型?
Why my system is trying to load a type from an invalid version of the assembly?
我正在处理一个使用 NHibernate 3 和 spring DI 的旧系统,我必须对此解决方案进行一些重构。该解决方案的一些项目使用的是 NHibernate 1.2,我将它们更改为 NHibernate 3。现在整个解决方案中使用的唯一版本的 NHibernate 是 3.
现在的问题是,当我尝试加载解决方案中的任何 Web 服务时,系统尝试从 NHibernate 1.2 加载一个类型,我已经在另一个系统中测试了已发布的项目,它工作正常,而且它应该是我的系统有问题,它只是给我:Could not load type 'NHibernate.Event.ListenerType' from assembly 'NHibernate, Version=1.2.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'。
谁能帮我找出为什么 CLR 试图从未引用的程序集中加载类型?
您可以尝试从全局程序集缓存中删除该程序集:
在命令提示符下,键入以下命令:
gacutil –u NHibernate
Gacutil.exe 是 Windows SDK 套件的一部分。在我的电脑上,它位于 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64
请检查您的 App.config/Web.config 文件中是否有 <bindingRedirect>
标签。我在使用 Newtonsoft.Json.dll 的 ASP.NET MVC 项目中遇到了类似的问题,我通过更新 <bindingRedirect>
标签的 oldVersion
和 newVersion
属性修复了该问题。 https://noodlearoundnet.blogspot.in/2016/09/newtonsoft-json-dll-version-mismatch.html
同样的问题在我身上发生过很多次,但 dll 不同
我将分享我为了摆脱这个问题所采取的步骤
- 删除调试和发布文件夹
- 删除对象文件夹
- 卸载项目并再次加载(右键单击项目并单击“卸载”,然后右键单击并单击“加载项目”)
- 右键单击解决方案并单击“清理解决方案”
- 右键单击解决方案并单击重建解决方案
我希望这对你有用
感谢所有试图帮助我的人,但我找到了回应。
我的系统上有 .NET Reflector,曾几何时,我用它在我的系统上反射 NHibernate,它的版本是 1.2.1.4000,它创建了一个副本我的 DLL 在它的缓存中,它在加载顺序中是首选。我删除了缓存,现在一切正常
我正在处理一个使用 NHibernate 3 和 spring DI 的旧系统,我必须对此解决方案进行一些重构。该解决方案的一些项目使用的是 NHibernate 1.2,我将它们更改为 NHibernate 3。现在整个解决方案中使用的唯一版本的 NHibernate 是 3.
现在的问题是,当我尝试加载解决方案中的任何 Web 服务时,系统尝试从 NHibernate 1.2 加载一个类型,我已经在另一个系统中测试了已发布的项目,它工作正常,而且它应该是我的系统有问题,它只是给我:Could not load type 'NHibernate.Event.ListenerType' from assembly 'NHibernate, Version=1.2.1.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4'。
谁能帮我找出为什么 CLR 试图从未引用的程序集中加载类型?
您可以尝试从全局程序集缓存中删除该程序集:
在命令提示符下,键入以下命令: gacutil –u NHibernate
Gacutil.exe 是 Windows SDK 套件的一部分。在我的电脑上,它位于 C:\Program Files (x86)\Microsoft SDKs\Windows\v8.1A\bin\NETFX 4.5.1 Tools\x64
请检查您的 App.config/Web.config 文件中是否有 <bindingRedirect>
标签。我在使用 Newtonsoft.Json.dll 的 ASP.NET MVC 项目中遇到了类似的问题,我通过更新 <bindingRedirect>
标签的 oldVersion
和 newVersion
属性修复了该问题。 https://noodlearoundnet.blogspot.in/2016/09/newtonsoft-json-dll-version-mismatch.html
同样的问题在我身上发生过很多次,但 dll 不同
我将分享我为了摆脱这个问题所采取的步骤
- 删除调试和发布文件夹
- 删除对象文件夹
- 卸载项目并再次加载(右键单击项目并单击“卸载”,然后右键单击并单击“加载项目”)
- 右键单击解决方案并单击“清理解决方案”
- 右键单击解决方案并单击重建解决方案
我希望这对你有用
感谢所有试图帮助我的人,但我找到了回应。
我的系统上有 .NET Reflector,曾几何时,我用它在我的系统上反射 NHibernate,它的版本是 1.2.1.4000,它创建了一个副本我的 DLL 在它的缓存中,它在加载顺序中是首选。我删除了缓存,现在一切正常