我们有一个Fluent NHibernate映射测试,在我们的本地机器上通过了,但当我们提交到TFS时,构建服务器上的测试失败了。我们正在使用MSTest。我们得到的错误是:
NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:在配置代理工厂类期间无法加载类型“NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle”。 可能的原因是: - NHibernate.Bytecode提供程序程序集未部署。 - 用于初始化session-factory部分的“proxyfactory.factory_class”属性的typeName格式不正确。
解决方案: 确认您的部署文件夹包含以下程序集之一: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.IO.FileNotFoundException:无法加载文件或程序集“NHibernate.ByteCode.Castle”或其某个依赖项。系统找不到指定的文件。 WRN:已关闭程序集绑定日志记录。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。 注意:与程序集绑定失败日志记录相关联的某些性能损失。 要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。
我们已经检查了删除文件夹,NHibernate.Bytecode.Castle.dll在那里。我们有对Castle.Core,Castle.DynamicProxy2,Iesi.Collections,log4net,NHibernate和NHibernate.ByteCode.Castle的dll和引用。我们已经通过在删除文件夹中的命令提示符下使用MSBuild运行了测试,错误仍然发生。我们的流畅映射如下(NHibernateConfig.MappingConfiguration()调用实际映射,自动映射):
Fluently.Configure() .Database(SQLiteConfiguration.Standard.ShowSql().InMemory()) .Mappings(NHibernateConfig.MappingConfiguration()) .BuildConfiguration();
为什么会这样?
NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:在配置代理工厂类期间无法加载类型“NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle”。 可能的原因是: - NHibernate.Bytecode提供程序程序集未部署。 - 用于初始化session-factory部分的“proxyfactory.factory_class”属性的typeName格式不正确。
解决方案: 确认您的部署文件夹包含以下程序集之一: NHibernate.ByteCode.LinFu.dll NHibernate.ByteCode.Castle.dll ---> System.IO.FileNotFoundException:无法加载文件或程序集“NHibernate.ByteCode.Castle”或其某个依赖项。系统找不到指定的文件。 WRN:已关闭程序集绑定日志记录。 要启用程序集绑定失败日志记录,请将注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog](DWORD)设置为1。 注意:与程序集绑定失败日志记录相关联的某些性能损失。 要关闭此功能,请删除注册表值[HKLM \ Software \ Microsoft \ Fusion!EnableLog]。
我们已经检查了删除文件夹,NHibernate.Bytecode.Castle.dll在那里。我们有对Castle.Core,Castle.DynamicProxy2,Iesi.Collections,log4net,NHibernate和NHibernate.ByteCode.Castle的dll和引用。我们已经通过在删除文件夹中的命令提示符下使用MSBuild运行了测试,错误仍然发生。我们的流畅映射如下(NHibernateConfig.MappingConfiguration()调用实际映射,自动映射):
Fluently.Configure() .Database(SQLiteConfiguration.Standard.ShowSql().InMemory()) .Mappings(NHibernateConfig.MappingConfiguration()) .BuildConfiguration();
为什么会这样?