Fluent NHibernate 1.0RTM 引用Nhibernate版本问题
2010-04-10 13:00
465 查看
使用过FluentNhibernate的你不知道遇到过这个问题没有:
下面代码通过三种方式创建Nhibernate.ISessionFactory
前2种都是使用FluentNhibernate创建Nhibernate.ISessionFactory
1 使用配置文件创建
2 不使用配置文件,直接通过程序配置
3
使用第二种方法(已经注释部分)测试通过,
但是改成第一种方式(未注释部分)创建时出现错误:
“未能加载文件或程序集“NHibernate, Version=2.1.2.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”或它的某一个依赖项。
找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)”
说明:项目使用的Nhibernate.dll的是从Fluent NHibernate官方网站下载的“fluentnhibernate-1.0RTM.zip”中包含的Nhibernate.dll,版本为2.1.0.4000(目前最新版本是:2.1.2.4000)
如下图
看起来是个简单问题,我就把项目中Nhibernate.dll换成2.1.2.4000版本的,结果
“未能加载文件或程序集“NHibernate, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”或它的某一个依赖项。
找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)”
郁闷了,
准备从FluentNhibernate官方网站上把FluentNhibernate的源码下载下来把Nhibernate换成最新版本后编译后使用
打开源码一看
源代码里本来使用的就是2.1.2.4000的,为啥提供的下载里Nhibernate.dllb版本是2.1.0.4000的,算了还是自个编译一遍吧,
再次让我郁闷了,缺少一个文件,编译无法通过.
google了一下,也有人说源码编译不能通过。
请大家给看看
下面代码通过三种方式创建Nhibernate.ISessionFactory
前2种都是使用FluentNhibernate创建Nhibernate.ISessionFactory
1 使用配置文件创建
2 不使用配置文件,直接通过程序配置
3
static SessionFactory() { sessionFactory = FluentNHibernate.Cfg.Fluently.Configure( new NHibernate.Cfg.Configuration() .Configure()) .Mappings(o => o.FluentMappings.AddFromAssembly(typeof(Teemdo.Core.Entity.MsApplicationMap).Assembly).ExportTo("E:\\project\\tmp")) .BuildSessionFactory(); //sessionFactory = FluentNHibernate.Cfg.Fluently.Configure() // .Database(FluentNHibernate.Cfg.Db.MsSqlConfiguration.MsSql2005 // .ConnectionString(s => s.Server(".") // .Database("aspnet_membership") // .Username("sa") // .Password("sa") // )) // .Mappings(o => o.FluentMappings // .AddFromAssembly(typeof(Teemdo.Core.Entity.MsApplicationMap).Assembly) // .ExportTo("E:\\project\\tmp")) // .BuildSessionFactory(); //------------------------------------------------------------------------------ //if (HttpContext.Current.Request.ApplicationPath != " / ") //{ // sessionFactory = new NHibernate.Cfg.Configuration().Configure(HttpContext.Current.Server.MapPath(HttpContext.Current.Request.ApplicationPath) + "/hibernate.cfg.xml").BuildSessionFactory(); //} //else //{ // sessionFactory = new NHibernate.Cfg.Configuration().Configure(HttpContext.Current.Server.MapPath("/") + "/hibernate.cfg.xml").BuildSessionFactory(); //} }
使用第二种方法(已经注释部分)测试通过,
但是改成第一种方式(未注释部分)创建时出现错误:
“未能加载文件或程序集“NHibernate, Version=2.1.2.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”或它的某一个依赖项。
找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)”
说明:项目使用的Nhibernate.dll的是从Fluent NHibernate官方网站下载的“fluentnhibernate-1.0RTM.zip”中包含的Nhibernate.dll,版本为2.1.0.4000(目前最新版本是:2.1.2.4000)
如下图
看起来是个简单问题,我就把项目中Nhibernate.dll换成2.1.2.4000版本的,结果
“未能加载文件或程序集“NHibernate, Version=2.1.0.4000, Culture=neutral, PublicKeyToken=aa95f207798dfdb4”或它的某一个依赖项。
找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)”
郁闷了,
准备从FluentNhibernate官方网站上把FluentNhibernate的源码下载下来把Nhibernate换成最新版本后编译后使用
打开源码一看
源代码里本来使用的就是2.1.2.4000的,为啥提供的下载里Nhibernate.dllb版本是2.1.0.4000的,算了还是自个编译一遍吧,
再次让我郁闷了,缺少一个文件,编译无法通过.
google了一下,也有人说源码编译不能通过。
请大家给看看
相关文章推荐
- FluentNHibernate 跟Castle 版本问题
- Gson解析和javascript引用问题(系统版本问题)
- 关于Fluent NHibernate一对一关联关系使用session.Refresh的问题
- NHibernate: Session.Save 采用版本控制时无必要地自动Update版本字段的问题
- 程序集引用版本冲突问题的解决办法:合并依赖项
- .NET 项目中引用的DLL 版本不一致的问题
- 引用静态资源的url添加版本号,解决版本发布后的浏览器缓存有关问题
- 关于2010以上版本水晶报表的引用问题
- wxPack-2.8.9.02解决了上一版本CodeBlocks不能建立引用静态库的程序的问题
- Winform WebBrowser引用IE版本问题
- WCF+Nhibernate循环引用导致序列化的问题
- MVCnet4.0引用 Newtonsoft.Json.dll版本,升级冲突问题
- vs引用Microsoft.Office.Interop.Excel.dll版本问题
- Android更新最新版本的SDK5.0引用v7资源报错问题
- tomcat7.0.52及以上版本web.xml引用外部文件问题
- Winform WebBrowser引用IE版本问题
- WCF+Nhibernate循环引用导致序列化的问题
- 使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?
- 重复引用jar包问题和降低编译版本问题总结
- 引用第三方库时支持版本不一致的问题