加入收藏 | 设为首页 | 会员中心 | 我要投稿 财气旺网 - 财气网 (https://www.caiqiwang.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle.DataAccess不匹配错误

发布时间:2021-05-22 17:16:05 所属栏目:站长百科 来源:网络整理
导读:我为Visual Studio 2012安装了odp.net 32??位安装.我设置了对Oracle.DataAccess.dll的引用,我与Oracle的连接似乎正在运行. 当我构建项目(.net 4)时,我收到以下错误.该项目设置为构建AnyCPU(我的工作站是64位,我们最终将部署到的服务器是32位) ‘正在构建的项

我为Visual Studio 2012安装了odp.net 32??位安装.我设置了对Oracle.DataAccess.dll的引用,我与Oracle的连接似乎正在运行.

当我构建项目(.net 4)时,我收到以下错误.该项目设置为构建AnyCPU(我的工作站是64位,我们最终将部署到的服务器是32位)

‘正在构建的项目的处理器体系结构“MSIL”与参考Oracle.DataAcess,版本4.112.3.0,Culture = neutral,PublicKeyToken = 89b483f429c47342,processorArchitecture = x86,“x86”的处理器体系结构之间存在不匹配.这种不匹配可能会导致运行时故障.请考虑通过Configuration Manager更改项目的目标处理器体系结构,以便在项目和引用之间调整处理器体系结构,或者使用与项目的目标处理器体系结构相匹配的处理器体系结构依赖引用

这只是一个vs.net警告,但有没有办法摆脱这个?

就像你说的那样,这只是一个警告.因为ODP.net不是“AnyCPU”,所以警告表明您的依赖关系不会像您自己的应用程序那样适应主机操作系统.只要你的odp.net安装符合比特的os,你就可以了.但是编译器无法做出这样的决定,并试图让你有所了解.

我确实找到了一个connect article,其中包括一个可能的更改(我假设到proj文件)来禁用错误:

<PropertyGroup>
<ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>None</ResolveAssemblyWarnOrErrorOnTargetArchitectureMismatch>
</PropertyGroup>

在任何情况下,只要您在服务器上安装的32位odp.net与您引用的64位odp.net版本相同(或者发布者策略已正确安装到您的服务器上),您的“AnyCPU”应用程序就可以在您的服务器上正常运行重定向到更高版本).为了消除任何混淆,我通常将“复制本地”设置为“false”.换句话说,我针对特定版本的dll编译,但让它与GAC解析的内容(包括大多数odp.net安装包含的发布者策略)相反.

您还可以在您的开发机器上安装32位odp.net(理想情况下再次使用相同版本),以便运行/调试32位应用程序或使用Visual Studio中“随Oracle Studio Tools for Visual Studio”提供的集成工具工作室.

总而言之,这里不仅仅是满足于眼睛.如果您的应用程序实际上正在运行(这暗示着“它只是一个警告”),则为64位,而不是使用32位安装.我猜你的机器已经安装了64位版本(多个oracle家庭).

(编辑:财气旺网 - 财气网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!