【问题标题】:Oracle Version MismatchOracle 版本不匹配
【发布时间】:2023-03-19 09:28:01
【问题描述】:

我在C# 中编写了一个代码,它使用Oracle 版本11.0.2。在使用 Oracle 版本 10.0.2 的服务器中部署代码时,它会抛出一个

错误: “无法加载文件或程序集 'Oracle.DataAccess, Version=2.121.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342' 或其依赖项之一。试图加载格式不正确的程序。”

在服务器上,安装oracle 11.0.2版本会解决这个问题吗?

【问题讨论】:

  • 您使用的是 Nuget 还是全局安装?

标签: c# oracle


【解决方案1】:

您确定使用 Oracle 版本 10.2 - 这大约有 20 年历史,并且长期不受支持。

我假设您根本没有安装“Oracle Data Provider for .NET”(ODP.NET)。默认情况下,标准 Oracle Instant Client 不包括 ODP.NET。您可以从这里下载 ODP.NET:http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html

确保下载正确的版本。架构(即 32 位与 64 位)必须与您的应用程序和安装的 Oracle 客户端的架构相匹配。版本也必须匹配,即使是次要版本号也很重要!

更新

错误消息是 Could not load file or assembly 'Oracle.DataAccess, Version=2.121.2.0 ...

所以,显然您安装了 ODP.NET 2.121.2.0 版,但根据您的说法,Oracle 客户端是 10.2 版(不存在 10.0.2 版)

正如我已经提到的,这些版本必须匹配。 ODP.NET 版本 10.2.0.2 不再可供下载。

因此您必须download/安装Oracle Instant Client 12.1.0.2.0 版

当然,您可以删除所有 ODP.NET 和 Oracle 客户端版本并重新安装所需的版本。

一般来说,您开发应用程序的版本无关紧要,除非您disabled Publisher Policy。已部署的应用程序应自动加载任何已安装的 ODP.NET 版本。

【讨论】:

  • 是的...我确定版本是 10.2,而我在桌面上构建的代码使用的是 11.2,
猜你喜欢
  • 2019-06-27
  • 2016-12-09
  • 2012-04-22
  • 2019-01-12
  • 2020-11-15
  • 2011-10-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多