2009-07-21 3 views
0

이 게시물에서는이 post의 인터페이스를 사용하여 모든 ProxyFactory 종속성을 제거했습니다. 그래서 hibernate.cfg.xml 파일에서 사용할 구현을 지정해야합니다. 나는이 구성했습니다 : 나는 NHibernate.ByteCode.Castle.dll에 refernce를 추가 한NHibernate 2.1.0의 문제점은 무엇입니까? 나는 항상 오류가 발생합니다!

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

합니다. MBunit을 사용하여 테스트를 실행하면 배포 폴더에 NHibernate.ByteCode.Castle.dll 또는 NHibernate.ByteCode.LinFu.dll이 포함되어야한다는 오류가 나타납니다. 이것이 올바른 구성이라고 생각합니다. 하지만 작동하지 않습니다. 나는 뒤에 많은 시간을 보냈다.

추신 : NHibernate를 donwload했을 때, NHibernate.ByteCode.Castle 프로젝트가 구축되지 않았습니다. 프로젝트에 솔루션을 추가하고 빌드했습니다. 그런 다음 어셈블리를 참조했습니다.

답변

2

나는 너무 오래 전에 이와 같은 상황을 겪었습니다.

참조를 추가했다고하면 실제 프로젝트 또는 테스트 프로젝트에 적용 했습니까? 둘 다 있어야합니다. 또한 참조의 속성 (F4)에서 "로컬 복사"가 true로 설정되어 있는지 확인하십시오.

dll이 응용 프로그램이 실행되는 디렉토리 내에 있다면 구성을 수행하기 전에 다음을 호출했는지 확인하는 또 다른 방법이 있습니다.

Console.WriteLine(Directory.GetCurrentDirectory()); 

내 상황에서, 나는 테스트를 실행 ReSharper에서를 사용하는 경우, 그것은 내가 기대했던 것보다 다른 위치에서 실행되고 DLL을 포함하지 않는 것을 배웠습니다. Clean Solution을 수행하고 재구성하면 문제가 해결 된 것으로 보입니다.

희망이 있으니 확인해야 할 몇 가지 사항이 있습니다.

관련 문제