Are the following assemblies in your bin directory? NHibernate.ByteCode.Castle.dll Castle.DynamicProxy2.dll Castle.Core.dll
Ben On Sat, Jul 25, 2009 at 12:00 PM, Brendan Erwin<[email protected]> wrote: > > I'm at a loss here. I'm trying to upgrade my project to the latest > fluent + NH 2.1. > > When I do my configuration like this: > > var factory = Fluently.Configure(cfg) > .Database(databaseConfigurer) > .Mappings(m > =>m.FluentMappings.AddFromAssemblyOf<PatientMap>() > .ConventionDiscovery > .AddFromAssemblyOf<PatientMap>()) > .ExposeConfiguration(c => > { > ve = > ConfigureValidator(c); > > c.SetProperty("adonet.batch_size", "5"); > > c.SetProperty("generate_statistics", "true"); > }) > .BuildSessionFactory(); > > fluent-nhibernate defaults to the Castle ProxyFactoryFactory but I get > a: > > System.IO.FileNotFoundException: Could not load file or assembly > 'NHibernate.ByteCode.Castle' or one of its dependencies. The system > cannot find the file specified. > at System.Reflection.Assembly._nLoad(AssemblyName fileName, String > codeBase, Evidence assemblySecurity, Assembly locationHint, ref > StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean > forIntrospection) > at System.Reflection.Assembly.nLoad(AssemblyName fileName, String > codeBase, Evidence assemblySecurity, Assembly locationHint, ref > StackCrawlMark stackMark, Boolean throwOnFileNotFound, Boolean > forIntrospection) > at System.Reflection.Assembly.InternalLoad(AssemblyName assemblyRef, > Evidence assemblySecurity, ref StackCrawlMark stackMark, Boolean > forIntrospection) > at System.Reflection.Assembly.InternalLoad(String assemblyString, > Evidence assemblySecurity, ref StackCrawlMark stackMark, Boolean > forIntrospection) > at System.Reflection.Assembly.Load(String assemblyString) > at > NHibernate > .Util.ReflectHelper.TypeFromAssembly(AssemblyQualifiedTypeName name, > Boolean throwOnError) > at NHibernate.Util.ReflectHelper.ClassForName(String name) > at > NHibernate > .Bytecode.AbstractBytecodeProvider.SetProxyFactoryFactory(String > typeName) > > > I've made sure to reference and mark to copy the > NHibernate.ByteCode.Castle assembly and it's dependancies. > > As a matter of fact, when I do my configuration like this: > > var factory = Fluently.Configure(cfg) > .Database(databaseConfigurer) > .Mappings(m > =>m.FluentMappings.AddFromAssemblyOf<PatientMap>() > .ConventionDiscovery > .AddFromAssemblyOf<PatientMap>()) > .ExposeConfiguration(c => > { > ve = > ConfigureValidator(c); > > c.SetProperty("adonet.batch_size", "5"); > > c.SetProperty("generate_statistics", "true"); > > c.SetProperty("proxyfactory.factory_class", > typeof > (NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); > }) > .BuildSessionFactory(); > > [Note the addition of: > > c.SetProperty("proxyfactory.factory_class", > typeof > (NHibernate.ByteCode.Castle.ProxyFactoryFactory).AssemblyQualifiedName); > > ] > > It compiles, but I get a new and exciting exception while configuring: > > System.Reflection.AmbiguousMatchException: Ambiguous match found. > at System.RuntimeType.GetPropertyImpl(String name, BindingFlags > bindingAttr, Binder binder, Type returnType, Type[] types, > ParameterModifier[] modifiers) > at System.Type.GetProperty(String name, BindingFlags bindingAttr) > at NHibernate.Properties.BasicPropertyAccessor.GetSetterOrNull(Type > type, String propertyName) > at NHibernate.Properties.BasicPropertyAccessor.GetSetter(Type type, > String propertyName) > at NHibernate.Mapping.Property.GetSetter(Type clazz) > at > NHibernate.Tuple.Component.PocoComponentTuplizer.BuildSetter(Component > component, Property prop) > at > NHibernate.Tuple.Component.AbstractComponentTuplizer..ctor(Component > component) > at NHibernate.Tuple.Component.PocoComponentTuplizer..ctor(Component > component) > at > NHibernate > .Tuple.Component.ComponentEntityModeToTuplizerMapping..ctor(Component > component) > at NHibernate.Tuple.Component.ComponentMetamodel..ctor(Component > component) > at NHibernate.Mapping.Component.BuildType() > at NHibernate.Mapping.Component.get_Type() > at NHibernate.Mapping.SimpleValue.IsValid(IMapping mapping) > at NHibernate.Mapping.PersistentClass.Validate(IMapping mapping) > at NHibernate.Mapping.RootClass.Validate(IMapping mapping) > at NHibernate.Cfg.Configuration.Validate() > at NHibernate.Cfg.Configuration.BuildSessionFactory() > at FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() in > FluentConfiguration.cs: line 93 > > > Any ideas? > > Also, why is the fluent access for setting the ProxyFactoryFactory > hanging off the database configuration? I don't understand that. It > doesn't really work for me there since I configure my database for > different cases. Sqlite for unit tests vs. MS sql server 2005 for > production. > > (FYI, the "ve = ConfigureValidator(c);" bit is the NHibernate > Validator. I don't think it matters, but...) > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---
