2011-02-01 44 views
5

我已經hibernate.cfg.xml文件包括在我的WCF服務庫NHibernate的 - 無法找到hibernate.cfg.xml文件

BuildAction = Content and 
Copy to output directory = Copy Always

然而,當我運行應用程序它拋出以下錯誤:

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

我不知道爲什麼它在上面的路徑而不是運行時bin目錄尋找hibernate.cfg.xml。

供參考:我最近安裝了DevExpress v10.2以用於其他應用程序。

任何想法?

回答

14

一種選擇是將你的NHibernate的配置到web.config中

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

在你configsections部分添加

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

另一種選擇是嘗試這種(WCF中未經測試)

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

感謝Rippo,設置Environment.CurrentDirectory = System.AppDomain.CurrentDomain.Ba seDirectory;解決了我的問題。但是我仍然無法理解爲什麼運行時將DevExpress作爲當前目錄。 – iniki 2011-02-01 10:21:14