2011-09-01 48 views
1

我在運行我的Nhibernate項目時遇到了這個煩人的錯誤。它正在運行okey,並突然它開始要求在此路徑中的文件「d:\ CSharp \ NH \ NH \ nhibernate \ src \ NHibernate \ Bytecode \ AbstractBytecodeProvider.cs」,並在取消時引發異常它說 在配置代理工廠類期間,無法加載類型'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle'。 可能的原因有: - 未部署NHibernate.Bytecode提供程序集。 - 用於初始化會話工廠部分的'proxyfactory.factory_class'屬性的typeName格式不正確。無法加載代理工廠的工廠異常

解決方案: 確認您的部署文件夾包含以下組件之一: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll

它成爲令人沮喪的我...需要幫助請 - :)

回答

6

請確保您有如下複製到輸出文件夾loaded DLL和你的過程:

  • NHibernate.ByteCode.Castle.dll
  • Castle.Core.dll
  • NHibernate.dll
  • Iesi.Collections.dll
  • log4net.dll

而且你的NHibernate的配置有這一行:

<property name="proxyfactory.factory_class"> 
NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle 
</property> 

作爲一個選項,你可以嘗試升級到NHibernate的最新版本 - 3.2。他們有一個內置的代理生成器,所以它應該更簡單。你將不需要這些額外的dll。如果你使用NHibernate 3.2,只需刪除上面的配置行。

如果由於某些原因您無法升級到3.2,您可能會考慮使用不同的byte code providers。 NHibernate支持其中3個開箱即用。嘗試李林甫或Spring:

  • NHibernate.ByteCode.Castle.ProxyFactoryFactory
  • NHibernate.ByteCode.LinFu.ProxyFactoryFactory
  • NHibernate.ByteCode.Spring.ProxyFactoryFactor
+0

謝謝你 - 這解決了我的問題確切 – bernhardrusch

2

升級到最新版本,您不再需要外部代理工廠。