我们在本地机器上传递了流利的NHibernate映射测试,但是当我们签入TFS时,测试在构建服务器上失败。我们正在使用MSTest。我们得到的错误是:MSBuild中的Nhibernate.Bytecode.Castle问题(TFS)
NHibernate.Bytecode.UnableToLoadProxyFactoryFactoryException:无法在配置代理工厂类期间加载类型'NHibernate.ByteCode.Castle.ProxyFactoryFactory,NHibernate.ByteCode.Castle'。 可能的原因有: - 未部署NHibernate.Bytecode提供程序集。 - 用于初始化会话工厂部分的'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]。
我们检查了drop文件夹,并且NHibernate.Bytecode.Castle.dll在那里。我们有dll和引用Castle.Core,Castle.DynamicProxy2,Iesi.Collections,log4net,NHibernate和NHibernate.ByteCode.Castle。我们已经通过MSBuild使用drop文件夹中的命令提示符运行测试,并且仍然出现错误。我们流利的映射是这样的(NHibernateConfig.MappingConfiguration())调用实际映射,automapped):
Fluently.Configure() .Database(SQLiteConfiguration.Standard.ShowSql()InMemory()) .Mappings( NHibernateConfig.MappingConfiguration()) .BuildConfiguration();
任何想法,为什么这可能是?
你添加了对NHibernate.ByteCode.LinFu.dll的引用NHibernate.ByteCode.Castle.dll? – Burt 2010-01-13 17:56:52
我们不使用林福。我已经更新了所有参考文章的帖子。 – JontyMC 2010-01-13 18:22:10