2011-02-01 2 views
5

나는 내 WCF 서비스 라이브러리에NHibernate - 파일 hibernate.cfg.xml을 찾을 수 없습니다

과 함께 hibernate.cfg.xml을 포함하고있다. 그러나 응용 프로그램을 실행할 때 다음과 같은 오류가 발생한다.

Could not find file 
'C:\Program Files (x86)\DevExpress 2010.2\IDETools\System\CodeRush\Bin\PlugIns\hibernate.cfg.xml'

왜 그것이 필요한지 잘 모르겠다. 런타임 빈 디렉터리 대신 위의 경로에서 hibernate.cfg.xml에 대해.

참고 : 최근에 DevExpress v10.2를 다른 응용 프로그램에서 사용하도록 설치했습니다.

어떤 아이디어?

답변

14

하나의 옵션은 또 다른 옵션은

이 (WCF에서 테스트되지 않은) 시도하는 것입니다

<configuration> 
    <configSections> 
    <section name="hibernate-configuration" type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate" requirePermission="false" /> 
    ... 
    <configSections> 
<configuration> 

를 추가하려면 configsections 섹션에서 Web.config의

<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
    ... 
    </session-factory> 
</hibernate-configuration> 

로 nHibernate 수 구성을 이동하는 것입니다

var cfg = new Configuration(); 
cfg.Configure(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,"hibernate.cfg.xml")); 
+0

감사합니다 Rippo, 환경 설정 .CurrentDirectory = System.AppDomain.CurrentDomain.Ba seDirectory; 내 문제를 해결했다. 그러나 나는 아직도 런타임이 DevExpress를 현재 디렉토리로 갖는 이유를 이해할 수 없다. – iniki

+0

하지만, 항상 NHibernate 설정에 config xml을 어디에서 찾을 것인지를 명시하는 것이 더 좋습니다. – Rippo

+0

라이브러리가 아닌 WCF 서비스 응용 프로그램을 사용하여 파일 이름에 "bin /"접두어를 붙이면됩니다. 어쨌든 배포시 어셈블리가 bin 폴더에 저장되므로이 종류의 하드 코딩이 문제가되지 않을 것으로 생각합니다. –

관련 문제