17

我刚刚更新了我的项目以使用 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,版本=3.0.0.2001,Culture=neutral,PublicKeyToken=aa95f207798dfdb4”或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

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

你能修复 NuGet,还是我应该在配置中使用 BindingRedirect?

4

1 回答 1

18

你很幸运!NuGet 有一个针对这种情况的命令(我们计划在未来使其更加自动化http://blog.davidebbo.com/2011/01/nuget-versioning-part-3-unification-via.html)。首先构建您的项目并从包管理器控制台类型:

PM> Add-BindingRedirect

并且它将最小的绑定重定向集添加到配置以使一切正常。

于 2011-01-24T09:02:42.803 回答