哪个版本的Fluent NHibernate与NHibernate 3.2兼容?

14

我注意到当我从Nuget安装Fluent NHibernate 1.2时,它会下载NHibernate 3.1。如果我想要使用NHibernate 3.2,在Nuget中该怎么做,而且这个版本是否与Fluent NHibernate 1.2兼容?


目前在NuGet上的FluentNHibernate 1.3是基于3.2构建的。 - mxmissile
3个回答

45
如果您使用Nuget包管理器控制台而不是GUI获取软件包(Install-Package FluentNHibernate),则会获得与NHibernate 3.2兼容的版本1.3.0.717。 enter image description here 我已经尝试过,对我来说运行良好。

这比原先被接受的答案更好。FNH 1.3似乎没有依赖于NHibernate.Castle。不过,1.3不是当前稳定版本,因此使用需谨慎。 - Matt Johnson-Pint
3
非常棒的答案。有人知道为什么 NuGet 控制台的行为与 GUI 不同,给出的结果也不同吗? - Asbjørn Ulsberg
令人惊讶的是(尽管我不相信它会),这对我也起作用了!+1 - reach4thelasers
@Ajadex,我在哪里可以获取1.3版本?官方git分支只有1.2版本的构建。 - Johnny_D
@Johnny_D 我使用Nuget下载了它,我不知道其他的方法。我怀疑1.3版本只是为了支持NHibernate 3.2而创建的。 - Ajadex
@Ajadex,我刚刚检查了一下,版本1.3和1.2在同一天发布,此外git没有任何包含1.3版本号的下载。而且距离上次更新已经快一年了。这是否意味着该项目不再受支持? - Johnny_D

5

这里你可以了解到有关即将发布3.2GA版本的FluentNHibernate计划以及使用属性的建议解决方法。

http://groups.google.com/group/fluent-nhibernate/browse_thread/thread/8e782e45ed9ba647

我通过使用属性得到了工作的结果。

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

4
目前,官方NuGet软件包源中的FluentNHibernate包依赖于NHibernate.Castle 3.1(目前还没有更新版本),后者又依赖于NHibernate 3.1(确切的版本,不是3.1或更高版本)。因此,在安装FluentNHibernate时,NuGet会推断出对NHibernate 3.1的依赖关系。
所以最终结论是:除非FluentNHibernate包得到更新,否则无法解决该问题。
最实用的方法是获取最新的FluentNHibernate源代码,并针对NHibernate 3.2进行构建。我已经测试过了,似乎可以正常运行。你甚至可以使用程序集绑定重定向来解决该问题,但我没有测试过。
另外,你也可以等待NHibernate 3.2达到GA(最终)版本并且FluentNHibernate跟上步伐,但这当然不是一个令人满意的答案。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接