2011-03-08 155 views
0

當我閱讀並嘗試每個類似的話題都沒有成功時,我決定發佈我自己的問題。我的解決方案有一個控制檯應用程序和一個用於數據訪問的類庫。 Nhibernate配置位於控制檯應用程序的appconfig中(我目前正在使用它進行調試,因爲我將在製作Web應用程序並將所有配置遷移到web.config之後)。無法加載類型NHibernate.ByteCode.Castle.ProxyFactoryFactory

例外情況是衆所周知的:

NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:無法代理工廠類的配置期間加載類型NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle.dll」。可能的原因是: - NHibernate.Bytecode提供程序集沒有部署。 - 用於初始化session-factory部分的'proxyfactory.factory_class'屬性的typeName格式不正確。解決方案:確認您的部署文件夾包含以下程序集之一:NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.IO.FileNotFoundException:無法加載文件或程序集'NHibernate.ByteCode.Castle .dll'或其依賴項之一。該系統找不到指定的文件。

我走上試圖解決這個問題的步驟:

1)在部署文件夾中的DLL - 我在我的倉以下DLL:

Castle.Core.dll - 訴2.5.1 Iesi.Collections.dll - v.2.0.0.1002 log4net.dll - v。1.2.10.0 NHibernate.ByteCode.Castle.dll - v.3.0.0.2001 NHibernate.dll - v.3.1.0.4000

2)配置包含

名稱= 「proxyfactory.factory_class」> NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode

3)設置我MetaManager.Data項目x86的CPU在部署 4 )我的bin文件夾中的所有dll都在項目中引用。

我想這個吧。我不知道要去:(

回答

0

我認爲Iesi.Collections和NHibernate.ByteCode.Castle程序集的版本應該與NHibnernate程序集相同,即3.1.0.4000(至少這是版本與NH 3.1.0 GA分發的程序集)

+0

我將NHibernate.ByteCode.Castle更改爲3.0.0.4000。這沒有幫助 – Arja 2011-03-09 06:25:14

+0

看起來你正在使用NH 3.1,所以我已經相應地更新了我的答案。 – Yhrn 2011-03-10 09:39:28

1

要找出哪些dll被加載或被哪個組件拒絕,可以使用屬於dotnetsdk的「Assembly Binding Log Viewer」(Fuslogvw.exe)。記錄已啓用,它可以顯示組件是否已加載以及哪個組件導致其加載。

有關詳細信息,請參閱http://msdn.microsoft.com/en-us/library/e74a18c4(v=vs.80).aspx

相關問題