Impossibile caricare il file o l'assembly in NHibernate

Impossibile caricare il file o l'assembly in NHibernate

Questi file dovrebbero trovarsi nella stessa directory del file di riferimento, NHibernate.dll:

  • Antlr3.Runtime.dll
  • Iesi.Collections.dll
  • log4net.dll
  • Castle.Core.dll
  • Castle.DynamicProxy2.dll

Inoltre dovresti aggiungere un riferimento o copiare anche questo:

  • NHibernate.ByteCode.Castle.dll

Come riferimento futuro:se riscontri gli stessi problemi segnalati da Randy Klingelheber (problemi di dipendenza tra NHibernate e FluentNHibernate o qualsiasi altra libreria dipendente), puoi specificare un reindirizzamento per gli assembly destinati alla versione precedente in app.config . Ciò impedisce di dover ricompilare l'assembly dipendente.

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <dependentAssembly>
      <assemblyIdentity name="NHibernate" publicKeyToken="aa95f207798dfdb4" />
      <bindingRedirect oldVersion="3.0.0.3001" newVersion="3.0.0.4000" />
    </dependentAssembly>
  </assemblyBinding>
</runtime>

Questo codice reindirizza le richieste per la vecchia versione (3.0.0.3001 nel mio caso) a quella effettivamente utilizzata (3.0.0.4000). Il publicKeyToken è incluso nel messaggio di errore.


Suppongo che tu abbia recentemente aggiornato NHibernate alla 2.1?

Se è così, suppongo che tu abbia diversi progetti che fanno riferimento a diverse versioni di NHibernate.

Questo è successo a me ed è più difficile da rintracciare di quanto potresti pensare.

Questi sono i passaggi che ho fatto per risolverlo:

  1. Elimina tutti i file in tutte le directory bin nei tuoi progetti. Di solito Clean Solution funziona bene per questo, ma non lo fa, potresti doverlo fare con una chiamata da riga di comando o manualmente
  2. Modifica tutti i tuoi file .csproj. Modificali con un editor di testo o esegui il Scarica progetto, quindi modifica il tuo file .csproj.
  3. Assicurati che TUTTI i tuoi nodi HintPath puntino alla stessa (nuova) versione della DLL

Si spera che questo ti risolva questo problema.