Fluent nhibernate FluentNHibernate和NuGet,NH版本存在问题

Fluent nhibernate FluentNHibernate和NuGet,NH版本存在问题,fluent-nhibernate,nuget,Fluent Nhibernate,Nuget,我刚刚更新了我的项目,将NuGet用于外部引用。我添加了对NHibernate的引用,它添加了NH的所有其他依赖项。然后我加了FluentNHibernate。为NH和Fluent下载的NH版本不匹配。NuGet显示FNH的版本为1.1.1.694,取决于NH的版本3.0.0.0.2001,而NH显示为版本3.0.0.4000 当我运行应用程序时,我收到以下消息: 无法加载文件或程序集“NHibernate,Version=3.0.0.2001,Culture=neutral,PublicKey

我刚刚更新了我的项目,将NuGet用于外部引用。我添加了对NHibernate的引用,它添加了NH的所有其他依赖项。然后我加了FluentNHibernate。为NH和Fluent下载的NH版本不匹配。NuGet显示FNH的版本为1.1.1.694,取决于NH的版本3.0.0.0.2001,而NH显示为版本3.0.0.4000

当我运行应用程序时,我收到以下消息:

无法加载文件或程序集“NHibernate,Version=3.0.0.2001,Culture=neutral,PublicKeyToken=aa95f207798dfdb4”或其依赖项之一。定位的程序集清单定义与程序集引用不匹配。(来自HRESULT的异常:0x8013100)

我也试着从FNH网站下载,但这表明FNH上的版本是1.1.0.685,它依赖于2.1.2.4000


你能修复NuGet吗,或者我应该在配置中使用BindingRedirect吗?

你真幸运!NuGet有一个用于此场景的命令(我们计划在将来使其更加自动化)。首先生成项目,然后从package manager控制台类型:

PM> Add-BindingRedirect

它会将最小的绑定重定向集添加到配置中,以使一切正常工作。

就我个人而言,我已经放弃使用NuGet,存储库到处都是,而且已经过时了。@Phil:真的吗?我只是做了一个转换,认为管理我的依赖项会更容易。大多数软件包都是最新的。有些还没有正式的所有者,但随着采用率的增加,这种情况正在迅速改变。该命令实际上是在v1.1之前的版本中添加绑定重定向。。。“s”不见了。@cdeszaq:我得试试。现在我只是在配置文件中手动添加了重定向。很高兴了解该选项。仅供参考,该命令在1.0中为复数,但在1.1中改为单数(对我来说,更多的PowerShell“正确”)。我一点也不喜欢这样,包管理器需要在这上面!是的,当然需要自动控制,除非有什么主要原因不这样做。