c#-4.0 – 流畅的nHibernate错误 – 无法编译映射文档:(XmlDocu
发布时间:2020-12-15 17:19:05 所属栏目:百科 来源:网络整理
导读:我已经阅读了有关Fluent nHibernate的所有问题,并没有找到答案. 我正在尝试运行入门教程 here,我收到此错误: 无法编译映射文档:(XmlDocument) 运行CreateSessionFactory时发生错误: private static ISessionFactory CreateSessionFactory() { return Flue
我已经阅读了有关Fluent nHibernate的所有问题,并没有找到答案.
我正在尝试运行入门教程 here,我收到此错误: 无法编译映射文档:(XmlDocument) 运行CreateSessionFactory时发生错误: private static ISessionFactory CreateSessionFactory() { return Fluently.Configure() .Database(SQLiteConfiguration.Standard .UsingFile(DBfile)) .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>()) .ExposeConfiguration(BuildSchema) .BuildSessionFactory(); } 有没有人得到过这个?完全例外: NHibernate.MappingException was unhandled by user code Message=Could not compile the mapping document: (XmlDocument) Source=NHibernate StackTrace: at NHibernate.Cfg.Configuration.LogAndThrow(Exception exception) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 342 at NHibernate.Cfg.Configuration.AddDeserializedMapping(HbmMapping mappingDocument,String documentFileName) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 530 at NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument doc) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 499 at NHibernate.Cfg.Configuration.ProcessMappingsQueue() in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 1832 at NHibernate.Cfg.Configuration.AddDocumentThroughQueue(NamedXmlDocument document) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 1823 at NHibernate.Cfg.Configuration.AddXmlReader(XmlReader hbmReader,String name) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 1816 at NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream,String name) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 632 at NHibernate.Cfg.Configuration.AddDocument(XmlDocument doc,String name) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 483 at NHibernate.Cfg.Configuration.AddDocument(XmlDocument doc) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 455 at FluentNHibernate.PersistenceModel.Configure(Configuration cfg) at FluentNHibernate.Cfg.MappingConfiguration.Apply(Configuration cfg) at FluentNHibernate.Cfg.FluentConfiguration.BuildConfiguration() InnerException: NHibernate.MappingException Message=persistent class FNHTest.Entities.Employee,FluentNHibernate,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null not found Source=NHibernate StackTrace: at NHibernate.Cfg.XmlHbmBinding.Binder.ClassForFullNameChecked(String fullName,String errorMessage) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingBinder.cs:line 103 at NHibernate.Cfg.XmlHbmBinding.Binder.ClassForNameChecked(String name,Mappings mappings,String errorMessage) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingBinder.cs:line 117 at NHibernate.Cfg.XmlHbmBinding.ClassBinder.BindClass(IEntityMapping classMapping,PersistentClass model,IDictionary`2 inheritedMetas) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingClassBinder.cs:line 35 at NHibernate.Cfg.XmlHbmBinding.RootClassBinder.Bind(HbmClass classSchema,IDictionary`2 inheritedMetas) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingRootClassBinder.cs:line 19 at NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.AddRootClasses(HbmClass rootClass,IDictionary`2 inheritedMetas) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingMappingRootBinder.cs:line 83 at NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.AddEntitiesMappings(HbmMapping mappingSchema,IDictionary`2 inheritedMetas) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingMappingRootBinder.cs:line 42 at NHibernate.Cfg.XmlHbmBinding.MappingRootBinder.Bind(HbmMapping mappingSchema) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingMappingRootBinder.cs:line 29 at NHibernate.Cfg.Configuration.AddDeserializedMapping(HbmMapping mappingDocument,String documentFileName) in d:CSharpNHNHnhibernatesrcNHibernateCfgConfiguration.cs:line 522 InnerException: System.IO.FileLoadException Message=Could not load file or assembly 'FluentNHibernate,PublicKeyToken=null' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) Source=mscorlib FileName=FluentNHibernate,PublicKeyToken=null FusionLog==== Pre-bind state information === LOG: User = dev-dsk02ademar.gomes LOG: DisplayName = FluentNHibernate,PublicKeyToken=null (Fully-specified) LOG: Appbase = file:///C:/code/GeneralTests/FluentNHibernate/FluentNHibernate/bin/Debug/ LOG: Initial PrivatePath = NULL Calling assembly : NHibernate,Version=3.1.0.4000,PublicKeyToken=aa95f207798dfdb4. === LOG: This bind starts in default load context. LOG: Using application configuration file: C:codeGeneralTestsFluentNHibernateFluentNHibernatebinDebugFluentNHibernate.vshost.exe.Config LOG: Using machine configuration file from C:WindowsMicrosoft.NETFrameworkv2.0.50727configmachine.config. LOG: Policy not being applied to reference at this time (private,custom,partial,or location-based assembly bind). LOG: Attempting download of new URL file:///C:/code/GeneralTests/FluentNHibernate/FluentNHibernate/bin/Debug/FluentNHibernate.DLL. WRN: Comparing the assembly name resulted in the mismatch: PUBLIC KEY TOKEN ERR: Failed to complete setup of assembly (hr = 0x80131040). Probing terminated. StackTrace: at System.RuntimeTypeHandle._GetTypeByName(String name,Boolean throwOnError,Boolean ignoreCase,Boolean reflectionOnly,StackCrawlMark& stackMark,Boolean loadTypeFromPartialName) at System.RuntimeTypeHandle.GetTypeByName(String name,StackCrawlMark& stackMark) at System.RuntimeType.PrivateGetType(String typeName,StackCrawlMark& stackMark) at System.Type.GetType(String typeName) at NHibernate.Util.ReflectHelper.TypeFromAssembly(AssemblyQualifiedTypeName name,Boolean throwOnError) in d:CSharpNHNHnhibernatesrcNHibernateUtilReflectHelper.cs:line 291 at NHibernate.Util.ReflectHelper.ClassForName(String name) in d:CSharpNHNHnhibernatesrcNHibernateUtilReflectHelper.cs:line 181 at NHibernate.Cfg.XmlHbmBinding.Binder.ClassForFullNameChecked(String fullName,String errorMessage) in d:CSharpNHNHnhibernatesrcNHibernateCfgXmlHbmBindingBinder.cs:line 99 InnerException: 解决方法
问题是您在自己的FluentNHibernate版本中创建了Employee类,但要执行您使用预编译的二进制文件. NHibernate尝试加载位于一个FNH版本中的类,但加载另一个版本的FNH并抱怨Assemblyversion不匹配.将实体移动到名称与FluentNHibernate不同的项目.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |