我刚刚重启了一个项目,我正在使用NHibernate。上次使用它时,该项目工作正常,但现在出现以下错误。
System.IO.FileLoadException:无法加载文件或程序集 'Iesi.Collections,Version = 1.0.0.3,Culture = neutral, PublicKeyToken = aa95f207798dfdb4'或其依赖项之一。该 找到程序集的清单定义与程序集不匹配 参考。 (来自HRESULT的异常:0x80131040)at NHibernate.Cfg.Configuration.Reset()at NHibernate.Cfg.Configuration..ctor(SettingsFactory settingsFactory)at NHibernate.Cfg.Configuration..ctor()at Luther.Dao.Repositories.Session.NHibernateHelper..cctor()in NHibernateHelper.cs:第18行
我注意到当前对iesi.dll的引用是1.0.1.0。 什么是让它再次运行的最佳方法?尝试找到适当的dll版本或整理清单文件?
答案 0 :(得分:4)
自上次此应用程序为您运行以来,您是否更新了项目中的一个程序集?看起来NHibernate是针对1.0.0.3版本构建的,你现在有1.0.1.0。
您应该能够在App.config(或web.config,视情况而定)中使用BindingRedirect元素来指示.Net Framework使用不同的版本来满足依赖性。像
这样的东西<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Iesi.Collections"
publicKeyToken="aa95f207798dfdb4"
culture="neutral" />
<bindingRedirect oldVersion="1.0.0.3"
newVersion="1.0.1.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>