4

无法加载文件或程序集 'Oracle.DataAccess, Version=9.2.0.700, Culture=neutral, PublicKeyToken=89b483f429c47342' 或其依赖项之一。找到的程序集的清单定义与程序集引用不匹配。(来自 HRESULT 的异常:0x80131040)

我使用 odac 32 位版本 11.2.0.3.0 开发了该应用程序。它在哪里工作得很好。但是部署到另一台我安装了带有 32 位客户端版本 11.2.0.3.0 的 IIS 7.5 的电脑上,我总是遇到上述错误。

我不知道它在哪里得到 oracle.DataAccess,版本 = 9.2.0.700。我尝试了一整天来解决这个问题。但仍然没有运气。请帮助我摆脱我真正感到可悲的情况。

4

5 回答 5

4

我终于得到了解决方案。我只需要将程序集重定向到 web.config 文件中的当前程序集,如下所示:

<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
 <dependentAssembly>
  <assemblyIdentity name="Oracle.DataAccess" publicKeyToken="89B483F429C47342"   culture="neutral"/>
<bindingRedirect oldVersion="9.2.0.700" newVersion="4.112.3.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>

谢谢大家的善意合作,知道什么是大解脱。

于 2012-05-15T12:33:33.490 回答
2

如果您使用的是 ODP.Net,请检查 gac 中的程序集版本以及它的目标平台。您可以通过从 Visual Studio 工具打开命令提示符并使用以下命令找到该信息

gacutil /l oracle.dataaccess

如果处理器架构是 x86,请确保您的应用程序池允许运行 32 位版本的程序集。这可以通过右键单击相应的

   application pool->advanced settings->Enable 32 bit Application to true.
于 2012-08-09T09:50:33.513 回答
1

转到此地址并阅读答案: 升级 DevExpress 后无法加载文件或程序集

在solutionExplorer:切换到文件视图并更改

CopyLocal = true 

对于ServerServerGenerated项目中的所有DevExpress程序集它为我解决了这个问题。你能试试看,如果有帮助,请告诉我?

于 2012-12-05T06:37:06.363 回答
0

也许您正在引用一个引用这个其他版本的 dll,即使直接项目不是?确保检查所有 dll 上的引用。

于 2012-05-08T16:20:59.500 回答
0

版本和运行时版本不太可能相同,这让我之前搞砸了。

至于引用,在项目所在机器上的Solution Explorer中选择对Oracle.DataAccess的引用。现在查看属性窗口并检查路径。

最后,转到出现故障的机器并确保相同的 dll 位于完全相同的路径中。

您也可以通过在 dll 的属性中打开“本地复制”来解决此问题,但我认为这不是“最佳实践”。

于 2012-05-08T17:13:55.147 回答