我在工作中正在使用的一個項目是使用Fluent Nhibernate和NHibernate將我們的應用程序連接到我們的數據庫。流利的NHibernate沒有與部署的應用程序一起工作,但在Visual Studio中工作
這一個應用程序能夠在Visual Studio中就好在不是「發佈模式」或「調試模式」的時候,但一旦你去,並通過.msi文件安裝應用程序,我們得到這個錯誤:
"The type initializer for 'NHibernate.Cfg.Configuration' threw an exception"
通常當我們得到這個錯誤是因爲一個映射是錯誤的或者可能是連接字符串,但這裏並不是這種情況。就像我上面提到的,該項目在Visual Studio中工作得很好,但不是安裝的版本。 .dll在所有情況下都是相同的版本。
這真的讓我陷入循環,我希望有人在那裏有任何想法或以前遇到過這個問題。
謝謝,讓我知道你是否需要我的任何數據。
更新:
實際上是能夠通過附加到進程來運行(我安裝調試版本)。所以,我能看到內部異常:
"Could not load file or assembly 'log4net, Version=1.2.10.0, Culture=neutral, PublicKeyToken=1b44e1d426115821' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)" string.
我們正在使用NHibernate和水晶在我們的應用程序VS2010和報告中有安裝項目中的兩個log4net的引用。兩者都是v1.2.10,但都有不同的公鑰標記。
我相信我解決了這個問題。
就像我剛纔提到的那樣,該項目將在Visual Studio中運行,但不會在安裝時運行。所以我今天早上注意到我檢測到的依賴文件夾中有兩個「log4net.dll」對象。兩個log4net.dlls都是相同的版本「1.2.10」,但都使用不同的公鑰標記。這對我來說似乎很奇怪。我有相同的版本,但都有不同的加密密鑰。
無論如何,我排除了兩個dll中的一個,我再次安裝了該項目,現在它正在運行。我希望不會有任何影響。所以它沒有完全解決,但現在它運作,這就是我所需要的。
兩個鍵參考爲: 692FBEA5521E1304 1B44E1D426115821
感謝NOtherDev和Shane Coutrille您的輸入。我想我不會對這個問題做出回答,因爲這不是理想的解決方案。
你確定所有的依賴關係嗎?像NHibernate和Iesi.Collections一樣?你能記錄InnerException嗎? – NOtherDev 2012-01-31 20:09:47
是的,我剛剛得到了內部異常,這是一個log4net問題。仍然不確定如何解決它。 – CSMHowitzer 2012-02-01 14:36:28
我在其他帖子中看到很多人對此有疑問。我現在正在瀏覽這些帖子,因爲我知道這可能是log4net,這讓我很頭疼。 – CSMHowitzer 2012-02-01 14:41:08