您的位置:首页 > 产品设计 > UI/UE

Fluent NHibernate 1.0RTM 引用Nhibernate版本问题

2010-04-10 13:00 465 查看
使用过FluentNhibernate的你不知道遇到过这个问题没有:

下面代码通过三种方式创建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了一下,也有人说源码编译不能通过。

请大家给看看
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: