c# - 无法加载类型 'NHibernate.ByteCode.CaSTLe.ProxyFactoryFactory, NHibernate.ByteCode.CaSTLe'

标签 c# oracle nhibernate hibernate

嗯,

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

异常(exception)是众所周知的:

NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:在配置代理工厂类期间无法加载类型 NHibernate.ByteCode.CaSTLe.ProxyFactoryFactory,NHibernate.ByteCode.CaSTLe.dll'。可能的原因是: - 未部署 NHibernate.Bytecode 提供程序程序集。 - 用于初始化 session 工厂部分的“proxyfactory.factory_class”属性的 typeName 格式不正确。解决方案:确认您的部署文件夹包含以下程序集之一: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.CaSTLe.dll ---> System.IO.FileNotFoundException: Could not load file or assembly '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.DynamicProxy2.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)配置 block 中的配置

 <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>

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

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

佩德罗杜索

更新以粗体

最佳答案

我认为您的 CaSTLe 版本有误。您应该拥有 CaSTLe.Core.dll。 NHibernate.ByteCode.CaSTLe.dll 可能没有加载,因为它找不到 CaSTLe.Core.dll。

http://sourceforge.net/projects/nhibernate/files/NHibernate/3.0.0Beta1/下载,位于\Required_For_LazyLoading\CaSTLe 的文件就是你需要的文件。

关于c# - 无法加载类型 'NHibernate.ByteCode.CaSTLe.ProxyFactoryFactory, NHibernate.ByteCode.CaSTLe',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971544/

相关文章:

c# - ASP.Net MVC2 DropDownListFor

c# - 如何从C#中的StringCollection中删除重复项?

sql - 如何使用SQL计算表中的列数?

sql - NHibernate 的 BuildSchema 有多好?

c# - 比 nHibernate 更轻的东西

c# - System.Object 类中的 Finalize 方法

c# - 如何知道 Windows 应用商店应用类型可能抛出什么类型的异常?

java - 从 PL/SQL 调用 Java 加密体系结构 (JCA)

sql - 有条件的sql查询

c# - 使用内存中查询实现自定义 QueryProvider