错误:找不到程序集MySql.Data中的IDbCommand和IDbConnection实现

时间:2011-02-10 14:05:32

标签: c# mysql nhibernate

嗨伙计们。我是如何解决这个问题的?我得到错误信息:

  

IDbCommand和IDbConnection   在程序集中实现   找不到MySql.Data。确保   程序集MySql.Data是   位于应用程序目录中   或者在全局程序集缓存中。如果   该程序集在GAC中,使用    中的元素   应用程序配置文件到   指定程序集的全名。

所以,我将这些行添加到web.config:

<configuration>
    <runtime>
        <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
            <qualifyAssembly partialName="MySql.Data" fullName="MySql.Data, Version=6.3.6, Culture=neutral, PublicKeyToken=c5687fc88969c44d" />
        </assemblyBinding>
    </runtime>

但没效果。

这是配置Hibernate的方法:

  private static ISessionFactory CreateSessionFactory()
    {    
        return new NHibernate.Cfg.Configuration()
            .Configure( @"C:\Users\Documents\Visual Studio 2010\Projects\Atendimento\NHibernateLayer\hibernate.cfg.xml" ) 
            .AddAssembly( typeof( NHibernateHelper ).Assembly )
            .BuildSessionFactory();
    }

任何??? Tkhs !!!

1 个答案:

答案 0 :(得分:1)

我记得之前看过这条错误消息,并且在blog entry中找到了适用于我的解决方案(如果内存服务!)。

您似乎正在向web.config添加相应的行,但是您是否确认您正在设置正确的版本号/公钥令牌?

<runtime>
  <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
    <qualifyAssembly partialName="MySql.Data" 
          fullName="MySql.Data, Version=6.2.2.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d">
   </qualifyAssembly>
  </assemblyBinding>
</runtime>

那就是说 - 我看到GAC中有Version N MySql.Data程序集时发生了奇怪/令人困惑的事情,并且你有另一个你引用Version M的副本。确保您在项目中引用相同的版本,与GAC中的版本相同。