nhibernate 2.1.0의 문제는 무엇입니까? 나는 항상 오류가 발생합니다!
-
18-09-2019 - |
문제
이 게시물 에서이 글에서 인터페이스를 사용하여 모든 근접한 의존성이 제거되었음을 읽었습니다. 게시하다. 따라서 hibernate.cfg.xml 파일에 사용할 구현을 지정해야합니다. 이 구성은 다음과 같습니다.
<?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>
나는 참조를 추가했다 NHibernate.ByteCode.Castle.dll
. mbunit을 사용하여 테스트를 실행하면 배포 폴더가 포함되어야한다는 오류가 발생합니다. NHibernate.ByteCode.Castle.dll
또는 NHibernate.ByteCode.LinFu.dll
. 나는 이것이 올바른 구성이라고 생각하며 작동해야합니다. 그러나 그것은 작동하지 않습니다. 나는 이것 뒤에 많은 시간을 보냈다.
추신 : nhibernate를하지 않았을 때 nhibernate.bytecode.castle 프로젝트는 구축되지 않았습니다. 프로젝트를 솔루션에 추가하여 구축했습니다. 그런 다음 어셈블리를 참조했습니다.
해결책
나는 얼마 전에 같은 상황을 가졌습니다.
참조를 추가했다고 말할 때 실제 프로젝트 또는 테스트 프로젝트에 영향을 미쳤습니까? 둘 다 안에 있어야합니다. 또한 참조의 속성 (F4)에서 "로컬 복사"가 true로 설정되어 있는지 확인하십시오.
DLL이 응용 프로그램이 실행중인 디렉토리 내에 있는지 확인하기 위해 내가 한 또 다른 접근법은 구성을하기 전에 다음을 호출하는 것입니다.
Console.WriteLine(Directory.GetCurrentDirectory());
내 상황에서, 나는 Resharper를 사용하여 테스트를 실행할 때 예상 한 것과 다른 위치에서 실행 중이며 DLL을 포함하지 않았다는 것을 알게되었습니다. 깨끗한 솔루션을 수행하고 재건하는 것이 문제를 해결하는 것처럼 보였습니다.
이것이 당신에게 몇 가지를 확인할 수 있기를 바랍니다.