example - nhibernate framework
Instalar NHibernate 3.2 con NuGet (5)
Cada versión de Fluent NHibernate utiliza una versión exacta de NHibernate (incluida en el paquete Fluent NHibernate) Debe eliminar el paquete NHibernate y agregar solo NHibernate fluido.
Soy nuevo en NHibernate y he estado tratando de ponerme en marcha con él, con Fluent NHibernate y NHProf usando NuGet. Después de leer este artículo ( http://gurustop.net/blog/2011/03/13/nhibernate-3-1-0-on-nuget-important-details ) parece que v3.1 no debe instalarse directamente, sin embargo, no aparece tal advertencia para v3.2.
Después de instalar NHibernate 3.2 y NHProf con éxito usando NuGet, no puedo instalar Fluent NHibernate porque dice "Ya hace referencia a una versión más nueva de NHibernate".
Además, cuando ejecuto mi aplicación, aparece el siguiente error "No se pudo cargar el archivo o ensamblado ''NHibernate.ByteCode.Castle'' o una de sus dependencias". El siguiente enlace ( No se pudo cargar el archivo o ensamblado en NHibernate ) sugiere la instalación de un número de ensamblajes adicionales, que es lo que esperaba evitar al usar NuGet en primer lugar.
En este punto, ¿sería más fácil seguir los pasos en NHForge para poner en marcha las cosas ya que los paquetes en NuGet no parecen ser compatibles?
Estoy usando esta instrucción en el archivo de configuración para hacer que FluentNhibernate funcione con NHibernate 3.2
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-3.2.0.1001" newVersion="3.2.0.1001" />
</dependentAssembly>
</assemblyBinding>
</runtime>
NHibernate 3.2 viene con su propia configuración de mapeo (Conform). FluentNHibernate solo funciona con NHibernate 3.1 como resultado de esto, no puede usar 3.2 (tuve el mismo problema). Por lo tanto, tendrá que descargar manualmente 3.1 y hacer referencia a eso a menos que NuGet le permita usar 3.1 directamente.
Su otra opción es eliminar todas las referencias a 3.2 y luego instalar FluentNHibernate desde NuGet, luego el resolvedor de dependencias se activará automáticamente e incluirá NHibernate 3.1 por usted.
NHibernate 3.2 viene con su propia fábrica proxy. Si está utilizando un archivo de configuración, solo necesita eliminar la propiedad de configuración de proxyfactory.
Creo que la versión de Fluent NHibernate que usa de manera predeterminada es NHibernate.ByteCode.Castle. En ese caso, deberá anular esa configuración con la fábrica incorporada de proxy NHibernate 3.2:
.ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate")
Si usa Nuget Package Manager Console en lugar de la GUI para obtener el paquete (Install-Package FluentNHibernate) obtendrá la versión 1.3.0.717 que es compatible con NHibernate 3.2
Lo intenté y está funcionando bien para mí. Ya respondí esto en este enlace: ¿ qué versión de nhibernate fluido es compatible con nhibernate 3.2?