使用NuGet安装NHibernate 3.2

使用NuGet安装NHibernate 3.2,nhibernate,fluent-nhibernate,nuget,Nhibernate,Fluent Nhibernate,Nuget,我是NHibernate的新手,一直在尝试使用它,流利的NHibernate和NHProf使用NuGet。阅读本文()之后,似乎不应该直接安装v3.1,但是,对于v3.2似乎没有这样的警告 在使用NuGet成功安装NHibernate 3.2和NHProf之后,我无法安装Fluent NHibernate,因为它说它“已经引用了NHibernate的更新版本” 此外,当我运行我的应用程序时,我得到以下错误“无法加载文件或程序集'NHibernate.ByteCode.Castle'或其依赖项之一

我是NHibernate的新手,一直在尝试使用它,流利的NHibernate和NHProf使用NuGet。阅读本文()之后,似乎不应该直接安装v3.1,但是,对于v3.2似乎没有这样的警告

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

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


在这一点上,如果NuGet上的包看起来不兼容,那么按照NHForge上的步骤启动和运行会更容易吗?

每个版本的Fluent NHibernate都使用一个精确版本的NHibernate(包含在Fluent NHibernate包中)
您应该删除NHibernate包,只添加Fluent NHibernate,NHibernate 3.2自带的代理工厂。如果使用的是配置文件,则只需删除proxyfactory配置属性

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

.ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate") 

NHibernate 3.2自带了自己的映射配置(Conform)。FluentNHibernate仅适用于NHibernate 3.1。因此,您不能使用3.2(我也有同样的问题)。因此,除非NuGet允许您直接使用3.1,否则您必须手动下载3.1并引用它


您的另一个选择是删除对3.2的所有引用,然后从NuGet安装FluentNHibernate,然后依赖项解析程序将启动并自动为您包含NHibernate 3.1。

我在配置文件中使用此构造使FluentNHibernate与NHibernate 3.2一起工作

 <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-3.2.0.1001" newVersion="3.2.0.1001" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>

如果使用Nuget软件包管理器控制台而不是GUI来获取软件包(安装软件包FluentNHibernate),您将获得与NHibernate 3.2兼容的版本1.3.0.717


我试过了,对我来说效果很好。我已经在这个链接上回答了这个问题:

这是正确的。。。不知道为什么有人投了反对票,没有任何评论。Fluent Nhibernate软件包安装NH3.1。问题是参考3.2。“我是NHibernate的新手,一直在尝试使用它”,所以我认为这个答案是正确的-我自己使用3.1是因为这些问题,最终当所有的包都赶上时,我认为我们都会使用3.2,NH3.2软件包应该清楚地说明它是测试版,或者根本无法从NuGet获得。不幸的是,FNH在3.2上的前景并不明朗:这为我修复了它(或者更确切地说,在我使用XML配置文件时删除了)。Nuget中的“NHibernate.Castle”集成包目前只有3.1.0.4000版本(在我写这篇评论时),他们需要将其更新为NHibernate的最新版本。希望NHibernate自己的代理工厂与Castle one?@JamesWebster+1在从XML配置中删除
方面没有显著差异。很好。我需要这个让FluentNHibernate 1.3.0.727与NHibernate 3.3.1.4000一起玩。