32 votes

Installer NHibernate 3.2 avec NuGet

Je suis nouveau sur NHibernate et ont essayé de se lever et courir avec elle, NHibernate Fluent et NHProf à l'aide de NuGet. Après la lecture de cet article (http://gurustop.net/blog/2011/03/13/nhibernate-3-1-0-on-nuget-important-details), il semble que v3.1 ne devrait pas être directement installé, cependant, il ne semble pas, tel avertissement pour v3.2.

Après l'installation réussie de NHibernate 3.2 et NHProf à l'aide de NuGet, je suis incapable d'installer Couramment NHibernate comme il dit c'est "Déjà le référencement d'une version plus récente de NHibernate".

Aussi, lorsque je lance mon application, j'obtiens l'erreur suivante: "impossible de charger le fichier ou l'assembly 'NHibernate.ByteCode.Château' ou une de ses dépendances". Le lien suivant (impossible de charger le fichier ou l'assembly NHibernate) suggère l'installation d'un certain nombre d'autres assemblées, qui est ce que j'espérais, pour éviter à l'aide de NuGet dans la première place.

À ce point, il est beaucoup plus facile de suivre les étapes sur NHForge pour mettre les choses en place et en cours d'exécution comme les packages NuGet ne semblent pas être compatibles?

29voto

Jim Geurts Points 8199

NHibernate 3.2 est livré avec sa propre usine de proxy. Si vous utilisez un fichier de configuration, il vous suffit de supprimer la propriété de configuration proxyfactory.

Je crois que la version de Fluent NHibernate que vous utilisez par défaut utilise NHibernate.ByteCode.Castle. Dans ce cas, vous devez remplacer ce paramètre par la fabrique de proxy NHibernate 3.2 intégrée:

 .ProxyFactoryFactory("NHibernate.Bytecode.DefaultProxyFactoryFactory, NHibernate") 
 

11voto

Catalin DICU Points 2785

Chaque version de Fluent NHibernate utilise une version exacte de NHibernate (incluse dans le package Fluent NHibernate). Vous devez supprimer le package NHibernate et n’ajouter que Fluent NHibernate.

6voto

Ajadex Points 906

Si vous utilisez le Gestionnaire de Package Nuget Console au lieu de l'interface graphique pour obtenir le package (Install-Package FluentNHibernate), vous obtiendrez la version 1.3.0.717 qui est compatible avec NHibernate 3.2 enter image description here

J'ai essayé et fonctionne bien pour moi. J'ai répondu à cette déjà sur ce lien: la version de nhibernate fluent est compatible avec nhibernate 3.2

3voto

AlfeG Points 979

J'utilise cette construction dans le fichier de configuration pour que FluentNhibernate fonctionne avec 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>
 

0voto

Kieran Senior Points 6053

NHibernate 3.2 est livré avec sa propre configuration de mappage (conforme). FluentNHibernate ne fonctionne qu'avec NHibernate 3.1, vous ne pouvez donc pas utiliser la version 3.2 (j'ai eu le même problème). Vous devrez donc télécharger manuellement la version 3.1 et indiquer que, sauf si NuGet vous autorise à utiliser la version 3.1 directement.

Votre autre option consiste à supprimer toutes les références à la version 3.2, puis à installer FluentNHibernate à partir de NuGet. Le résolveur de dépendance démarrera et inclura automatiquement NHibernate 3.1 pour vous.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X