使用NuGet安装NHibernate 3.2

Rua*_*riQ 32 nhibernate fluent-nhibernate nuget

我是NHibernate的新手,并且一直在尝试使用NuGet来启动和运行它,Fluent NHibernate和NHProf.阅读本文(http://gurustop.net/blog/2011/03/13/nhibernate-3-1-0-on-nuget-important-details)后,似乎不应该直接安装v3.1,但是,v3.2似乎没有这样的警告.

在使用NuGet成功安装NHibernate 3.2和NHProf之后,我无法安装Fluent NHibernate,因为它说"已经引用了更新版本的NHibernate".

此外,当我运行我的应用程序时,我收到以下错误"无法加载文件或程序集'NHibernate.ByteCode.Castle'或其依赖项之一".以下链接(无法在NHibernate中加载文件或程序集)建议安装一些额外的程序集,这是我希望首先使用NuGet避免的.

在这一点上,由于NuGet上的软件包看起来不兼容,因此按照NHForge上的步骤进行操作会更容易吗?

Jim*_*rts 29

NHibernate 3.2附带了自己的代理工厂.如果您使用的是配置文件,则只需删除proxyfactory配置属性即可.

我相信您使用的Fluent NHibernate版本默认使用NHibernate.ByteCode.Castle.在这种情况下,您需要使用内置的NHibernate 3.2代理工厂覆盖该设置:

.ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate") 
Run Code Online (Sandbox Code Playgroud)

  • 这为我修复了它(或者更确切地说,删除了<property name ="proxyfactory.factory_class">,因为我正在使用XML配置文件).Nuget中的'NHibernate.Castle'集成包目前仅高达3.1.0.4000(当我写这篇评论时),他们需要将它更新到最新版本的NHibernate.希望NHibernate自己的代理工厂和Castle one之间没有显着差异? (2认同)

Cat*_*ICU 11

每个版本的Fluent NHibernate都使用精确版本的NHibernate(包含在Fluent NHibernate包中)你应该删除NHibernate包并仅添加Fluent NHibernate

  • 在我看来,NH 3.2软件包应该明确说明它是测试版或根本不能从NuGet获得.不幸的是,FNH在3.2的未来是阴天:http://lostechies.com/jamesgregory/2011/04/13/me-on-nhibernate-3-2/ (2认同)

Aja*_*dex 6

如果您使用Nuget包管理器控制台而不是GUI来获取包(Install-Package FluentNHibernate),您将获得与NHibernate 3.2兼容的版本1.3.0.717 在此输入图像描述

我试过并且对我很好.我在这个链接上已经回答了这个问题:哪个版本的流畅nhibernate与nhibernate 3.2兼容