当我安装fluentNhibernate时,为什么nuget尝试强制和依赖升级?

时间:2013-02-23 21:43:48

标签: c# nhibernate fluent-nhibernate nuget

我已经在项目(版本3.3.1)中已经有了nhibernate,现在我正在尝试通过Nuget包管理器下载fluentNhibernate并且我收到此错误:

PM> install-package fluentnhibernate -Version 1.3.0.733
Attempting to resolve dependency 'NHibernate (≥ 3.3.1.4000)'.
Attempting to resolve dependency 'Iesi.Collections (≥ 3.2 && < 4.0)'.
Successfully installed 'Iesi.Collections 3.2.0.4000'.
Successfully installed 'NHibernate 3.3.2.4000'.
Successfully installed 'FluentNHibernate 1.3.0.733'.
Install failed. Rolling back...
install-package : Updating 'NHibernate 3.1.0.4000' to 'NHibernate 3.3.2.4000' failed.     
Unable to find a version of 'NHibernate.Castle' that is compatible with 'NHibernate 
3.3.2.4000'.

At line:1 char:1
+ install-package fluentnhibernate -Version 1.3.0.733
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : NotSpecified: (:) [Install-Package], InvalidOperationException
+ FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PowerShell.Commands.InstallPackageCommand

我不明白为什么这不成功,因为它说nhibernate只需要版本3.3.1或更高,所以为什么它试图强制升级到3.3.2(我想保持在3.3。 1)然后与城堡不兼容。

是否有任何解释或是否有任何解决方法将安装fluentnhibernate但在当前版本保持nhibernate(它说它很好)?

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:3)

它正在尝试升级到NH 3.3.2,因为这是满足Fluent NHibernate依赖性的最新版本。我认为没有理由比3.3.2更喜欢3.3.1。你已经拥有的是3.1.0,它更老了。

您还安装了NHibernate.Castle软件包,仅限于3.1.0.4000。

总结:

  • FluentNHibernate 1.3.0.733需要NHibernate 3.3.1或更高版本。
  • NHibernate.Castle 3.1.0需要NHibernate 3.1.0。

由于没有更新版本的NHibernate.Castle可用,因此无法解决。

从NH 3.2开始,你不再需要NHibernate.Castle(或类似的),因为代理生成现在是内置的。除非你出于其他原因需要它,否则你可以删除该包。

另请参阅NuGet参考中的Constraining Upgrades To Allowed Versions