2012-07-30 54 views
3

我甚至增加的app.config这个小片配置的:无法创建驱动程序从NHibernate.Driver.OracleDataClientDriver(与本地副本设置为true)

<qualifyAssembly partialName="Oracle.DataAccess" 
      fullName="Oracle.DataAccess, 
          Version=2.112.2.0, 
          Culture=neutral, 
          PublicKeyToken=89b483f429c47342" /> 
    </assemblyBinding> 

...没有成功。什么可能是错的? 同样,只是要确保我的app.config是风水,那就是:

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="hibernate-configuration" 
    type="NHibernate.Cfg.ConfigurationSectionHandler, NHibernate"/> 
    </configSections> 
    <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2"> 
    <session-factory> 
     <property name="show_sql">true</property> 
     <property name="dialect">NHibernate.Dialect.Oracle10gDialect</property> 
     <property name="connection.driver_class"> 
     NHibernate.Driver.OracleDataClientDriver 
     </property> 
     <property name="connection.connection_string_name"> 
     GuitarStore2 
     </property> 
     <property name="connection.provider"> 
     NHibernate.Connection.DriverConnectionProvider 
     </property> 
    </session-factory> 
    </hibernate-configuration> 
    <connectionStrings> 
    <add name="GuitarStore" 
    connectionString="****************"/> 
    <add name="GuitarStore2" 
    connectionString="****************"/> 
    </connectionStrings> 
    <runtime> 
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> 
     <qualifyAssembly partialName="Oracle.DataAccess" 
      fullName="Oracle.DataAccess, 
          Version=2.112.2.0, 
          Culture=neutral, 
          PublicKeyToken=89b483f429c47342" /> 
    </assemblyBinding> 
    </runtime> 
</configuration> 

为了记录在案,我使用的是最新的NHibernate的(3.3.1),在.NET 3.5,Windows下7 64位。而且,在完全相同的项目中,我在另一台机器上没有遇到任何异常情况,但是在Windows XP中。

+0

尝试使用MS的ADO.NET提供程序用于Oracle后,出现另一个有趣的错误:“尝试加载Oracle客户端库时抛出BadImageFormatException。在安装了32位Oracle客户端组件的64位模式下运行时,会发生此问题。 “我有这样的感觉,即Oracle提供商发生同样的事情。 – 2012-07-30 19:53:02

回答

6

问题不在于NHibernate,而是因为IL在生成64位代码的同时使用了32位版本的ODP,因此只需将“Any CPU”选项更改为“x86”,就可以摆脱的例外。

相关问题