我正在使用NHibernate构建应用程序。因为我无法添加我当前版本的NHibernate的DLL(当框架4.0是目标时我无法添加引用)。
我试图获得最新最好的w.w.w.,这就是我现在所拥有的:
这些我可以参考并构建我的解决方案。我知道复制/加载dll.s有一些问题,所以我把它们作为部署项目。 但运行时我(仍然)得到以下结果:
NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:无法在配置代理工厂类时加载类型'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle'。 可能的原因是: - 未部署NHibernate.Bytecode提供程序程序集。 - 用于初始化session-factory部分的'proxyfactory.factory_class'属性的typeName格式不正确。
解决方案:
确认您的部署文件夹包含以下程序集之一:
NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.TypeLoadException:程序'NHibernate.ByteCode.Castle.ProxyFactoryFactory'中的方法'IsProxy'来自程序集'NHibernate.ByteCode.Castle,Version = 3.0.0.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4'没有实现。
有人想到吗?
为了回应Vijay Gill的回答,我决定采取不同的策略。
NUGet套餐,一站式商店,轻松更新!
那里有一个FluentNHibernate包。我安装了它,但我想这里也有一些不妥之处:
测试方法CoreDatabaseTests.CreateCoreDatabase抛出异常:
System.IO.FileLoadException:无法加载文件或程序集'NHibernate,Version = 3.2.0.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。 (HRESULT异常:0x80131040)---> System.IO.FileLoadException:无法加载文件或程序集'NHibernate,Version = 3.1.0.4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4'或其依赖项之一。定位的程序集的清单定义与程序集引用不匹配。
答案 0 :(得分:5)
使用NHibernate 3.2,您不再需要NHibernate.ByteCode.Castle了,这大大简化了依赖树。
答案 1 :(得分:2)
在这种情况下从各个位置获取组件是个好主意,您可以从头开始编译所有内容。那是我迄今为止的经历。 Fluent NH尚未更新为NH 3.2GA。
我建议您download fluent NH并坚持使用它附带的版本或者如果您想要处于最前沿,请下载流畅的NH源并使用参考设置为最新的NH(3.2GA)进行编译)。