我正在使用 https://github.com/haf/Castle.Facilities.NHibernate,它是用 NHibernate 3.1 和 FluentNHibernate 1.2 构建的。我已在我的域中通过 NuGet 升级到 NHibernate 4.x 和 FluentHibernate 2.x。这样我就有了这些项目参考:
...
Castle.Facilities.NHibernate v0.7
--> Depends on FLuentNHibernate v1.2
--> Depends on NHibernate v3.1
NHibernate v4.0
FluentNHibernate v2.0
...
升级 NHibernate 和 FluentNHibernate 时,我已将它们添加到我的 app.config 中:
<dependentAssembly>
<assemblyIdentity name="FluentNHibernate" publicKeyToken="8aa435e3cb308880" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.0.3.0" newVersion="2.0.3.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.0.0.4000" newVersion="4.0.0.4000" />
</dependentAssembly>
Castle Facility 随后可以正确使用更新后的 NHibernate 版本。但是,它拒绝使用正确的 FluentNHibernate 版本,并出现以下错误:
Severity Code Description Project File Line Suppression State
Error CS0012 The type 'FluentConfiguration' is defined in an assembly that is not referenced. You must add a reference to assembly 'FluentNHibernate, Version=1.3.0.733, Culture=neutral, PublicKeyToken=8aa435e3cb308880'. Hl7ic.Domain ..\FluentInstaller.cs 11 Active
我在 FLuentNHibernate 页面上读到他们不支持强命名。我想知道这是否有影响,我需要重新编译上述库之一,或者我是否缺少其他内容?
重建了 Castle.Facilities.NHibernate 的最新主版本,并对分支的自述文件中指出的构建问题进行了更新和解决方法,并接受了拉取请求。此修复现在应该可供所有人使用。