Question

Je l'ai lu dans ce message que toute la dépendance ProxyFactory a été supprimé à l'aide d'une interface dans cette après . Donc, vous devez spécifier l'implémentation à utiliser dans le fichier hibernate.cfg.xml. J'ai cette configuration:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=MYDB;Integrated Security=true</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
    <property name='proxyfactory.factory_class'>NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
  </session-factory>
</hibernate-configuration>

J'ai ajouté un refernce au NHibernate.ByteCode.Castle.dll. Quand je lance le test en utilisant MbUnit, je reçois l'erreur que mon dossier de déploiement doit contenir NHibernate.ByteCode.Castle.dll ou NHibernate.ByteCode.LinFu.dll. Je suppose que cela est bonne configuration et il devrait fonctionner. Mais ça ne fonctionne pas. J'ai passé beaucoup de temps derrière tout cela.

P.S: Quand je donwloaded NHibernate, le projet NHibernate.ByteCode.Castle n'a pas été construit. J'ai ajouté le projet à la solution et construisais. Ensuite, j'ai parlé de l'ensemble.

Était-ce utile?

La solution

J'ai eu cette même situation pas trop longtemps.

Quand vous dites que vous avez ajouté une référence, a été au projet réel ou d'un projet de test? Il devrait être dans les deux. Aussi, assurez-vous « copie locale » est définie sur true dans les propriétés (F4) de la référence.

Une autre approche que je pris pour vérifier que si dll est dans le répertoire que l'application est en cours d'exécution à partir était en appelant ce qui suit avant tout de la configuration.

Console.WriteLine(Directory.GetCurrentDirectory());

Dans ma situation, j'ai appris que lorsque vous utilisez ReSharper pour exécuter des tests, il a été en cours d'exécution dans un autre endroit que je ne pensais et n'a pas été contenant les dll. Faire un Clean Solution et reconstruction semblait corriger le problème.

Espérons que cela vous donne une ou deux choses à vérifier.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top