我真的不喜歡發佈這樣的問題,試圖尋找一個錯誤,可能我錯過了一些非常簡單的東西,但我剛開始學習NHibernate,我很努力地分析這個現在一天,並找不到問題。NHibernate無法編譯映射文件
我的域類:
namespace PanoMeasurer.Core.Domain
{
public class Panorama : EntityBase
{
public virtual double HeadingBase
{
get;
set;
}
}
}
namespace PanoMeasurer.Core.Domain
{
public class EntityBase : IEntity
{
public virtual Guid OID
{
get;
set;
}
}
}
我Panorama.hbm.xml映射文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="PanoMeasurer.Core.Domain"
namespace="PanoMeasurer.Core.Domain">
<class name="Panorama">
<id name="OID" generator="guid.comb"/>
<property name="HeadingBase"/>
</class>
</hibernate-mapping>
我打電話在單元測試代碼:
m_config = new Configuration()
.SetProperty(Environment.ReleaseConnections, "on_close")
.SetProperty(Environment.Dialect, typeof(SQLiteDialect).AssemblyQualifiedName)
.SetProperty(Environment.ConnectionDriver, typeof(SQLite20Driver).AssemblyQualifiedName)
.SetProperty(Environment.ConnectionString, "data source =:memory: ")
.AddFile("Mappings/Xml/Panorama.hbm.xml");
m_sessionFactory = m_config.BuildSessionFactory();
Session = m_sessionFactory.OpenSession();
new SchemaExport(m_config).Execute(true, true, false, Session.Connection, Console.Out);
創建新配置時出現異常:
OneTimeSetUp:NHibernate.MappingException:無法編譯映射文檔:映射/ XML/Panorama.hbm.xml ----> System.IO.DirectoryNotFoundException:淖FOIpossívellocalizar UMA單方面待辦事項caminho「C:\用戶\羅德里戈\應用程序數據\本地\ JetBrains公司\安裝\ ReSharperPlatformVs14 \映射\ XML \ Panorama.hbm.xml」。 異常不具有堆棧跟蹤
它說,它無法編譯,因爲據我瞭解,那是因爲它找不到某些路徑上的XML文件。爲什麼它在Resharper文件夾中查找所有文件?我的項目輸出全部設置爲默認bin/debug文件夾。
我的解決辦法是組織這樣的:
所以你可以看到,PanoMeasurer.Core.Domain組件存在,全景類位於那裏。
我的映射文件設置爲EmbededResource:
我還要告訴大家,我使用NHibernate的最新的金塊版本。
我在這裏錯過了什麼?
什麼樣的價值屬性Panorama.hbm.xml有?構建操作並複製到輸出目錄?您必須在輸出目錄 – DanielVorph
上搜索該文件它已設置爲Embedded Resource並始終複製 – RBasniak
您是否可以將Build Action屬性更改爲「content」?當你編譯它時,用你的xml配置文件在輸出目錄中創建一個文件夾 – DanielVorph