2011-02-01 15 views
5

NHibernate - dosya hibernate.cfg.xml bulunamadı

BuildAction = Content and 
Copy to output directory = Copy Always

ile birlikte WCF servis kitaplığımda hibernate.cfg.xml var. Ancak, uygulamayı çalıştırdığımda şu hatayı atıyor:

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

Neden arandığından emin değilim run-time bin dizini yerine hibernate.cfg.xml dosyasının üstünde.

FYI: Kısa bir süre önce başka bir uygulamada kullanılmak üzere DevExpress v10.2'yi kurdum.

Herhangi bir fikir?

cevap

14

Seçeneklerden biri Diğer bir seçenek

bu (WCF denenmemiş) denemektir

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

eklemek için configsections bölümde web.config

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

içine nHibernate yapılandırmasını taşımaktır

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

Teşekkürler Rippo, Environment.CurrentDirectory = System.AppDomain.CurrentDomain.Ba ayarlanıyor seDirectory; sorunumu çözdü. Bununla birlikte, çalışma zamanının neden şimdiki dizin olarak DevExpress'i kullandığını anlayamıyorum. – iniki

+0

Ancak, NHibernate yapılandırmasını yapılandırma xml dosyasını nerede bulacağınızı açıkça belirtmek her zaman daha iyidir. – Rippo

+0

Bir kitaplık yerine bir WCF Hizmet Uygulaması kullanarak, dosya adına "bin /" önekini koymam gerektiğini buldum. Meclisler, dağıtımın yapıldığı sırada bin klasöründe olacağından, bu tür bir kodlamanın problem olmayacağını düşünüyorum. –

İlgili konular