无法加载文件或程序集“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。我整天都试着解决这个问题。但仍然没有运气。请帮助我摆脱我真正感到可悲的情况。
答案 0 :(得分:3)
我终于得到了解决方案。我只需要将程序集重定向到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>
感谢大家的亲切合作,并知道什么感觉大为宽慰。
答案 1 :(得分:2)
如果您在gac中使用ODP.Net检查程序集版本以及它所针对的平台。您可以通过从visual studio工具打开命令提示符并使用以下命令找到该信息
gacutil /l oracle.dataaccess
如果处理器体系结构是x86,那么请确保允许您的应用程序池运行32位版本的程序集。这可以通过右键单击相应的
来完成。 application pool->advanced settings->Enable 32 bit Application to true.
答案 2 :(得分:0)
也许您正在引用引用此其他版本的dll,即使该直接项目不是?请务必查看所有dll上的参考文献。
答案 3 :(得分:0)
版本和运行时版本可能不一样,之前让我搞砸了。
对于引用,请在项目工作的计算机上的解决方案资源管理器中选择对Oracle.DataAccess的引用。现在查看属性窗口并检查路径。
最后,转到失败的机器,确保同一个dll生活在完全相同的路径上。
你也可以通过在dll的属性中打开“copy local”来解决这个问题,但我不认为这被认为是“最佳实践”。
答案 4 :(得分:0)
转到这个地址并阅读答案: Could not load file or assembly after upgrading DevExpress
在solutionExplorer中:切换到文件视图并更改
CopyLocal = true
服务器中的所有 DevExpress 程序集 和 ServerGenerated 项目。它为我解决了这个问题。你可以尝试一下,让我知道这有用吗?