【发布时间】:2013-06-22 03:58:48
【问题描述】:
我有一个.NET winforms 应用程序,它使用ODP 连接到oracle db。 ODP 安装是 32 位的,我正在 Win 7 64 bit machine 上开发应用程序。我在开发机器上将平台目标设置为 x86,它运行正常。
但是当我在Win Server 2003 64 bit machine 上测试应用程序时,它给出了异常
The type initializer for 'Oracle.DataAccess.Client.OracleCommand' threw an exception.
UNHANDLED EXCEPTION STACK TRACE:at Oracle.DataAccess.Client.OracleCommand.Dispose(Boolean disposing)
at System.ComponentModel.Component.Finalize()
UNHANDLED EXCEPTION SOURCE: Oracle.DataAccess
UNHANDLED EXCEPTION INNER EXCEPTION: Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize()
at Oracle.DataAccess.Client.OracleCommand..cctor()
UNHANDLED EXCEPTION DATA: System.Collections.ListDictionaryInternal
UNHANDLED EXCEPTION MESSAGE: The type initializer for 'Oracle.DataAccess.Client.OracleCommand' threw an exception.
当我在 Windows 7 64 位上将平台目标设置为 Any CPU 时,会出现异常:
Could not load file or assembly 'Oracle.DataAccess, Version=2.112.1.0, Culture=neutral, PublicKeyToken=89b483f429c47342' or one of its dependencies. An attempt was made to load a program with an incorrect format.
开发机(Win 7 64位)ODP版本为11.2.0,测试机(Win Server 2003 64位)也是11.2.0
我应该怎么做才能在两台机器上运行应用程序?有什么想法吗?
【问题讨论】:
-
我的ODP安装下有
ORACLE_BASE\ORACLE_HOME\odp.net\bin\2.x但没有ORACLE_BASE\ORACLE_HOME\odp.net\bin\4目录。
标签: c# .net-4.0 windows-server-2003 windows-7-x64 odp.net