Fluent NHibernate 1.2-动态程序集中不支持调用的成员

Fluent NHibernate 1.2-动态程序集中不支持调用的成员,nhibernate,fluent-nhibernate,Nhibernate,Fluent Nhibernate,我已经将我的Fluent NHibenate升级到1.2,因为我已经将NHibenate升级到3.0版。这是因为我在项目中使用了ANTLR,并且ANTLR版本之间存在兼容性问题。现在,我在创建映射时遇到了这个错误,这是fluntly.Configure()调用的一部分,我以前在1.0.X.X版本中使用相同的程序集时没有遇到过这个错误。我正在VS2008的C#NET 3.5中开发 错误为“动态程序集中不支持调用的成员。” 我刚刚花了整整一个上午在同一个问题上 我尝试了所有的方法,但最终解决的办法是

我已经将我的Fluent NHibenate升级到1.2,因为我已经将NHibenate升级到3.0版。这是因为我在项目中使用了ANTLR,并且ANTLR版本之间存在兼容性问题。现在,我在创建映射时遇到了这个错误,这是fluntly.Configure()调用的一部分,我以前在1.0.X.X版本中使用相同的程序集时没有遇到过这个错误。我正在VS2008的C#NET 3.5中开发

错误为“动态程序集中不支持调用的成员。”


我刚刚花了整整一个上午在同一个问题上


我尝试了所有的方法,但最终解决的办法是删除我所有的垃圾箱文件夹。实际上,我删除了我的项目,然后从存储库更新到最新版本(不应该签入bin文件夹),然后构建并再次运行该项目。不知何故,某些地方发生了变化,这意味着nHibernate无法找到log4net的程序集信息。我猜这与目标目录中的错误配置有关,而清理/重建无法解决该问题

对于那些将再次面临问题的人。此异常是正常行为,因为它不是未处理的异常。看到它的唯一原因是VisualStudio配置为可以看到所有异常(已处理和未处理),并且禁用了“仅调试我的代码”。因此,您可以忽略异常并在捕获时按continue,或者配置visual studio,使其不会向您显示此类异常

我还遇到了一个异常,说“动态程序集中不支持被调用的成员”。在我的例子中,找到它的原因让我有些头疼

@StuffOccurs'答案中提到的原因对我来说也适用:我还选中了Debug->Exceptions对话框中“公共语言运行时异常”的“抛出”框。但是,我也有未选中的工具->选项->调试->仅启用我的代码(仅限托管)”。事实上,当我这样做的时候,我没想到在脱胶过程中会出现这样的异常

除了上面的例外,我还看到了

  • 来自DevExpress的MissingManifestResourceException抱怨某些SkinInfoBlob.resources元素在包含自定义外观的DLL中不存在
  • 不同的FileNotFoundExceptions抱怨可能缺少与所需类型所在的程序集版本相同的*.XmlSerializers程序集(不仅针对我们自己的程序集,而且针对NHibernate.XmlSerializers)
  • Spring.Net中的NotSupportedException试图解析NHibernate中的某个对象,声明“动态程序集中不支持被调用的成员。”(或德语中的“Der aufgerufene member wird in einer dynamischen assembly nicht unterstützt.”
  • 处理TatukGIS符号时出现格式异常,说明(或德语“Die Eingabezeichenfolge hat das falsche Format.”
我再次选中“仅启用我的代码(仅管理)”框,所有神秘的异常都消失了


我希望这可以帮助某人摆脱这个陷阱。

我在加载用于dapper代码的sql文件时遇到了相同的错误,我将构建操作设置为“Embedded Resource”,并且.NET assembly能够加载它。

请发布完整的堆栈TraceEyes,如果它说它阻塞了什么类,请把代码贴出来,我想你指的是v1.1.1.694。目前还没有FNH 1.2。今天,我接到团队中一位开发人员的电话,关于Fluent.Configure()调用时引发NotSupportedException。除了让VisualStudio暂停以报告异常之外,没有异常行为。他没有选中“仅启用我的代码”选项。我也检查了它,看到了异常。但是尼伯内特工作得很好。我告诉他要确保选项被选中,不要担心,因为NHibernate似乎正确地处理了这个异常。该死的,当我做了一个清理和一个构建之后,它就解决了这个问题。我讨厌这种事发生。谢谢Chris的建议。没问题,很高兴我能帮助清理解决方案->构建解决方案没有为我做这件事。忽略异常似乎不会引起任何问题。
    public static ISessionFactory GetFactory()
    {
        if (_factory == null)
        {
            Assembly assembly = Assembly.Load("BigFoot.Infrastructure");

            IApplicationContext springContainer = ContextRegistry.GetContext();
            IDbProvider provider = (IDbProvider)springContainer.GetObject("DbProvider");

            string connection = provider.ConnectionString;

            if (connection.Length > 0)
            {

                _factory = Fluently.Configure()
                    .Database(MsSqlConfiguration.MsSql2008.ConnectionString(connection))
                    .Mappings(m =>
                        {
                            m.FluentMappings.AddFromAssembly(assembly);
                            m.HbmMappings.AddFromAssembly(assembly);
                        })

                    .BuildSessionFactory();
            }
        }

        return _factory;
    }