Pergunta

Eu li neste post que toda a dependência proxyfactory foi removida usando uma interface neste publicar. Portanto, você precisa especificar qual implementação usar no arquivo hibernate.cfg.xml. Eu tenho essa configuração:

<?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>

Eu adicionei uma referência ao NHibernate.ByteCode.Castle.dll. Quando eu executo o teste usando o mbunit, recebo o erro que minha pasta de implantação deve conter qualquer um NHibernate.ByteCode.Castle.dll ou NHibernate.ByteCode.LinFu.dll. Eu acho que essa é a configuração correta e deve funcionar. Mas isto não está funcionando. Passei muito tempo por trás disso.

PS: Quando eu não o Nibernate, o projeto Nibernate.bytecode.castle não foi construído. Eu adicionei o projeto à solução e o construí. Então eu referenciei a assembléia.

Foi útil?

Solução

Eu tinha a mesma situação há pouco tempo.

Quando você diz que adicionou uma referência, foi ao projeto ou projeto de teste real? Deve estar dentro de ambos. Além disso, verifique se "cópia local" está definido como true nas propriedades (F4) da referência.

Outra abordagem que adotei para verificar se a DLL estiver dentro do diretório da qual o aplicativo está sendo executado foi chamando o seguinte antes de qualquer uma das configurações.

Console.WriteLine(Directory.GetCurrentDirectory());

Na minha situação, aprendi que, ao usar o Resharper para executar testes, estava em execução em um local diferente do que eu esperava e não estava contendo a DLL. Fazer uma solução limpa e a reconstrução parecia corrigir o problema.

Espero que isso lhe dê algumas coisas para verificar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top