Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Install NHibernate 3.2 with NuGet

I'm new to NHibernate and have been trying to get up and running with it, Fluent NHibernate and NHProf using NuGet. After reading this article (http://gurustop.net/blog/2011/03/13/nhibernate-3-1-0-on-nuget-important-details) it seems that v3.1 shouldn't be directly installed, however, there appears no such warning for v3.2.

After successfully installing NHibernate 3.2 and NHProf using NuGet, I'm unable to install Fluent NHibernate as it says it's "Already referencing a newer version of NHibernate".

Also, when I run my app I get the following error "Could not load file or assembly 'NHibernate.ByteCode.Castle' or one of its dependencies". The following link (Could not load file or assembly in NHibernate) suggests installing a number of additional assemblies, which is what I was hoping to avoid by using NuGet in the first place.

At this point would it just be easier to follow the steps on NHForge to get things up and running as the packages on NuGet don't appear to be compatible?

like image 698
RuairiQ Avatar asked Apr 16 '11 15:04

RuairiQ


4 Answers

NHibernate 3.2 comes with its own proxy factory. If you're using a config file, you just need to remove the proxyfactory configuration property.

I believe the version of Fluent NHibernate that you're using defaults to use NHibernate.ByteCode.Castle. In that case, you would need to override that setting with the built in NHibernate 3.2 proxy factory:

.ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate") 
like image 113
Jim Geurts Avatar answered Nov 12 '22 22:11

Jim Geurts


Each version of Fluent NHibernate uses an exact version of NHibernate (included in the Fluent NHibernate package) You should remove the NHibernate package and add only Fluent NHibernate

like image 21
Catalin DICU Avatar answered Nov 12 '22 21:11

Catalin DICU


If you use the Nuget Package Manager Console instead of the GUI to get the package (Install-Package FluentNHibernate) you will get version 1.3.0.717 which is compatible with NHibernate 3.2 enter image description here

I tried and is working fine for me. I answered this already on this link: which version of fluent nhibernate is compatible with nhibernate 3.2

like image 22
Ajadex Avatar answered Nov 12 '22 22:11

Ajadex


I'm using this consctruction in config file to make FluentNhibernate work with 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>
like image 3
AlfeG Avatar answered Nov 12 '22 21:11

AlfeG