2009-06-21 33 views
4

我使用FluentNHibernate並在配置階段,我收到以下錯誤:爲「NHibernate.Cfg.Configuration」的類型初始值引發了異常

下面是配置:

公共靜態ISessionFactory CreateSessionFactory () { 返回 Fluently.Configure()。數據庫( MsSqlConfiguration.MsSql2000.ConnectionString( C => c.FromConnectionStringWithKey( 「HighOnCodingConnectionString」))) .Mappings(M =>
m.FluentMappings.AddFromAssemblyOf()) .BuildSessionFactory(); }

這裏是錯誤:

[失效] when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory TestCase的 'when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory' 失敗:對於 'NHibernate.Cfg.Configuration' 的類型初始值引發異常。 System.TypeInitializationException異常 消息:'NHibernate.Cfg.Configuration'的類型初始值設定項引發異常。 來源:NHibernate的 堆棧跟蹤: 在NHibernate.Cfg.Configuration..ctor() C:\ FluentNHibernate \ SRC \ FluentNHibernate \ CFG \ FluentConfiguration.cs(25,0):在FluentNHibernate.Cfg.FluentConfiguration..ctor( ) C:\ FluentNHibernate \ src \ FluentNHibernate \ Cfg \ Fluently.cs(16,0):at FluentNHibernate.Cfg.Fluently.Configure() C:\ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCoding.BusinessObjects \工廠\ SessionFactory.cs(17,0):在HighOnCoding.BusinessObjects.Factories.SessionFactory.CreateSessionFactory() C:\ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCoding.TestSuite \ Configuration \ TestFluentNHiberate.cs(17,0 ):在HighOnCoding.TestSuite.Configuration.when_instantiating_a_session_factory.should_be_able_to_create_a_session_factory() 內部異常 System.IO.FileLoadException 消息:定位的程序集清單定義與程序集引用不匹配。 (異常來自HRESULT:0x80131040) 來源:NHibernate的 堆棧跟蹤: 在NHibernate.Cfg.Configuration..cctor()

這裏是FusionLog事日誌信息:

*大會粘結劑日誌條目( 6/21/2009 @ 12:49:38 PM)*

操作失敗。 綁定結果:hr = 0x80070002。該系統找不到指定的文件。 C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \的Mscorwks.dll 運行下的可執行C:

大會經理從裝\項目\ highoncodingmvc的\ src \ highoncoding的\ src \ HighOnCodingConsole \ BIN \調試\ HighOnCodingConsole.exe ---詳細的錯誤日誌如下。

===預綁定狀態信息=== 日誌:User = D9SKQBG1 \ AzamSharp LOG:DisplayName = NHibernate.XmlSerializers,Version = 2.0.1。4000,Culture = neutral,PublicKeyToken = aa95f207798dfdb4,processorArchitecture = MSIL (完全指定) LOG:Appbase = file:/// C:/ Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/ LOG :初始PrivatePath = NULL LOG:動態基地= NULL LOG:高速緩存基址= NULL LOG:AppName的= NULL

調用組件:的System.Xml,版本= 2.0.0.0,文化=中性公鑰= b77a5c561934e089。

LOG:此綁定在默認加載上下文中啓動。 日誌:使用應用程序配置文件:C:\ Projects \ highoncodingmvc \ src \ highoncoding \ src \ HighOnCodingConsole \ bin \ Debug \ HighOnCodingConsole.exe.Config LOG:使用c:\​​ WINDOWS \ Microsoft.NET \ Framework中的計算機配置文件\ V2.0.50727 \ CONFIG \ machine.config中。 日誌:後策略引用:NHibernate.XmlSerializers,版本= 2.0.1.4000,文化=中性,PublicKeyToken = aa95f207798dfdb4,processorArchitecture = MSIL 日誌:GAC查找不成功。 日誌:試圖下載新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers.DLL。 日誌:嘗試下載新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers/NHibernate.XmlSerializers.DLL。 日誌:試圖下載新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers.EXE。 日誌:試圖下載新的URL文件:/// C:/Projects/highoncodingmvc/src/highoncoding/src/HighOnCodingConsole/bin/Debug/NHibernate.XmlSerializers/NHibernate.XmlSerializers.EXE。 LOG:所有探測URL嘗試失敗。

回答

2

看起來你已經針對程序集的一個版本進行了編譯,但是在執行時它正在尋找另一個版本並抱怨。我建議你turn on Fusion logging找出發生了什麼 - 特別是造成問題的確切組裝。

+0

但是這怎麼可能!我剛剛從FluentNHibernate網站獲得了DLL,並手動添加了對所有程序集的引用! – azamsharp 2009-06-21 17:43:11

2

我知道這是早就解決了,但今天已經有這個問題我自己,我發現這是我個人的解決方案,我想我會分享知識:

https://forum.hibernate.org/viewtopic.php?p=2399679

從帖子:

「我的Visual Studio調試器被設置爲打破所有異常,調整異常設置解決了我的問題。」

也促使我:

http://www.codewrecks.com/blog/index.php/2008/02/13/sgenexe-and-strongly-named-assemblies/

「一些搜索我發現xxxx.XmlSerializers組件是預先生成組件的xmlserializers查找試圖生成一個在運行時之前後.. 「

相關問題