无法加载类型NHibernate.ByteCode.Castle.ProxyFactoryFactory

问题描述:

当我阅读并尝试每个类似的话题都没有成功时,我决定发布我自己的问题。我的解决方案有一个控制台应用程序和一个用于数据访问的类库。 Nhibernate配置位于控制台应用程序的appconfig中(我目前正在使用它进行调试,因为我将在制作Web应用程序并将所有配置迁移到web.config之后)。无法加载类型NHibernate.ByteCode.Castle.ProxyFactoryFactory

例外情况是众所周知的:

NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:无法代理工厂类的配置期间加载类型NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle.dll”。可能的原因是: - NHibernate.Bytecode提供程序集没有部署。 - 用于初始化session-factory部分的'proxyfactory.factory_class'属性的typeName格式不正确。解决方案:确认您的部署文件夹包含以下程序集之一:NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.IO.FileNotFoundException:无法加载文件或程序集'NHibernate.ByteCode.Castle .dll'或其依赖项之一。该系统找不到指定的文件。

我走上试图解决这个问题的步骤:

1)在部署文件夹中的DLL - 我在我的仓以下DLL:

Castle.Core.dll - 诉2.5.1 Iesi.Collections.dll - v.2.0.0.1002 log4net.dll - v。1.2.10.0 NHibernate.ByteCode.Castle.dll - v.3.0.0.2001 NHibernate.dll - v.3.1.0.4000

2)配置包含

名称= “proxyfactory.factory_class”> NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode

3)设置我MetaManager.Data项目x86的CPU在部署 4 )我的bin文件夹中的所有dll都在项目中引用。

我想这个吧。我不知道要去:(

我认为Iesi.Collections和NHibernate.ByteCode.Castle程序集的版本应该与NHibnernate程序集相同,即3.1.0.4000(至少这是版本与NH 3.1.0 GA分发的程序集)

+0

我将NHibernate.ByteCode.Castle更改为3.0.0.4000。这没有帮助 – Arja 2011-03-09 06:25:14

+0

看起来你正在使用NH 3.1,所以我已经相应地更新了我的答案。 – Yhrn 2011-03-10 09:39:28

要找出哪些dll被加载或被哪个组件拒绝,可以使用属于dotnetsdk的“Assembly Binding Log Viewer”(Fuslogvw.exe)。记录已启用,它可以显示组件是否已加载以及哪个组件导致其加载。

有关详细信息,请参阅http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.80).aspx