不同版本的ODAC在C#应用程序中引起错误(本地Vs服务器)

时间:2018-12-13 07:54:14

标签: c# odp.net odac

我已经使用C#构建了一个应用程序。我已经参考了ODAC版本4.121.2.0。 当我在服务器上部署应用程序时,该应用程序失败并显示以下错误:

  

未处理的异常:System.BadImageFormatException:无法加载文件或资产   mbly'Oracle.DataAccess,版本= 4.121.2.0,区域性=中性,PublicKeyToken = 89b4   83f429c47342'。该程序集是为其他处理器编译的。

服务器仅安装了4.121.1.0。

要使应用程序正常工作,我需要做什么?我尝试过的事情:

 1. In the .csproj <SpecificVersion>False</SpecificVersion>

 <Private>False</Private>

 2. I tried copying over the ODAC version (4.121.2.0) in the bin solution directory(of the server), it wouldn't work.
 3. I tried removing all ODAC dlls in folder, so that it can find out older version and use that for functionality.

我不想在本地安装较旧的版本,然后-过去我曾尝试过此操作,但最终卸载了所有版本。

可能的重复项: Having two ODP.NET (ODAC) versions in the same server

How do I get an older version of OracleClient to work locally with .NET? oracleclient-to-net本地工作

但是这些链接没有为我的问题提供解决方案。

1 个答案:

答案 0 :(得分:2)

我认为您遇到的错误与依赖项版本控制问题无关。当入口点(即BadImageFormatException文件)和一个依赖项之间存在32Bit / 64Bit不兼容时,通常会抛出exe

在编译项目时尝试使用目标平台(Any CPU / x86 / x64Prefer 32-Bit项目属性)。

希望有帮助!