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

Mar*_*arc 7 nhibernate fluent-nhibernate

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

错误是"动态程序集中不支持调用的成员".

    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;
    }
Run Code Online (Sandbox Code Playgroud)

Stu*_*ens 12

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


Chr*_*ant 2

我刚刚花了整个上午的时间来解决同样的问题。

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