views:

160

answers:

2

NHibernate 2.1.0 references Spring 1.3.0.

NHibernate 2.1.1 references Spring 0.0.0.2.

Is there any special reason for that? I upgraded to NHibernate 2.1.1 and now I'm getting Assembly loading errors.

+1  A: 

You need to use an assembly redirect in your app/web.config to point to the version of Spring.NET you want to use. The version numbers will depend on the specific version you're using.

I'm guessing you're going to use the proxies generated by Spring.NET instead of i.e. Castle, you'll need to pick up one of the latest builds since there's a bug in Spring.NET 1.3 and the NHibernate provider.

  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="Spring.Aop"
                          publicKeyToken="65e474d141e25e07"
                          culture="neutral" />

        <bindingRedirect oldVersion="0.0.0.20110"
                         newVersion="0.0.0.20310"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="Spring.Core"
                          publicKeyToken="65e474d141e25e07"
                          culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.20110"
                         newVersion="0.0.0.20310"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
BennyM
I figured that much. I was just surprised that a newer newer version of the assembly referenced a completely different Spring assembly. Thanks for the answer.
Megacan
+2  A: 

NHibernate 2.1.2GA has been released and on the 15th of december the springteam is going to release Spring.Net 1.3GA. I updated to a nightly build (they are pretty stable right now and there is a "feature freeze") and it is already compiled against 2.1.2GA. You might want to try that too.

tobsen