Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法加载类型';NHibernate.ByteCode.Castle.proxyFactory,NHibernate.ByteCode.Castle';_C#_Oracle_Nhibernate_Hibernate - Fatal编程技术网

C# 无法加载类型';NHibernate.ByteCode.Castle.proxyFactory,NHibernate.ByteCode.Castle';

C# 无法加载类型';NHibernate.ByteCode.Castle.proxyFactory,NHibernate.ByteCode.Castle';,c#,oracle,nhibernate,hibernate,C#,Oracle,Nhibernate,Hibernate,那么 当我阅读和尝试每一个相似的主题都没有成功时,我决定发布我自己的问题。 我的解决方案有一个控制台应用程序和一个用于数据访问的类库。Nhibernate配置位于console应用程序中的appconfig中(我目前正在使用它进行调试,在制作Web应用程序并将所有配置迁移到Web.config之后,我将使用它) 众所周知,例外情况如下: NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:在配置代理工厂类期间无法加载类型NHi

那么

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

众所周知,例外情况如下:

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

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

1) 部署文件夹中的dll-我的bin中有以下dll:
Antlr3.Runtime.dll-v。3.1.3.42154
Castle.Core.dll-v。2.5.1.2121
Castle.dynamicProxy 2.dll-v。2.2.0.6628
Iesi.Collections.dll-v.3.0.0.1002
log4net.dll-v。1.2.10.0
NHibernate.ByteCode.Castle.dll-v.3.0.0.2001 NHibernate.dll-v.3.0.0.1002
Oracle.DataAccess.dll-v.4.112.1.2
Remotion.Data.Linq.dll-v.1.13.41.2

2) 配置块中的配置

 <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
  <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
  <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property>
  <property name="connection.driver_class">NHibernate.Driver.OracleDataClientDriver</property>
  <property name="connection.connection_string_name">MetaManager</property>
  <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle</property>
  <mapping assembly="MetaManager.Data"/>
</session-factory>

NHibernate.Connection.DriverConnectionProvider
NHibernate.方言
NHibernate.Driver.OracleDataClientDriver
元管理器
NHibernate.ByteCode.Castle.ProxyFactory,NHibernate.ByteCode.Castle

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

我想这就是它。我不知道还有什么可以去的:(

佩德罗杜索


粗体

更新我认为您的Castle版本错误。您应该使用Castle.Core.dll。可能没有加载NHibernate.ByteCode.Castle.dll,因为它找不到Castle.Core.dll


在从的下载中,位于\u LazyLoading\Castle的\Required\u中的文件就是您需要的文件。

非常感谢,但它没有工作。我使用的是alpha版本,现在更新到beta版,但错误仍然存在。我将继续搜索。再次感谢。请尝试以下步骤:1)删除所有nhibernate dll 2)清理并重建项目3)从beta zip中复制\Required_Bin和\Required_For_LazyLoading\Castle中的所有dll,并引用它们4)重建项目并验证所有dll都在Bin\Debug中。这通常对我有效。你不会相信。。。VS在控制台应用程序的bin文件夹中查找DLL(名称也很糟糕,叫做“Debug”),而不是在我的MetaManaget.Data项目中:(当我放置DLL时,我得到了一个不同的(oracle)错误..不是原来的**#$%#$字!感谢您的设想!@Pmdusso:这是因为VS在编译后并不总是更新其引用路径,因此DLL的路径由VS IDE自动设置到bin文件夹。建议在项目属性中设置
引用路径
,以避免出现错误ch Behavior.=)根据,Castle不再是必需的依赖项,根据,您甚至不再需要配置代理。可能的副本