You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET连接Oracle 12c时抛出Hotel.dll中FileNotFoundException错误求助

VB.NET连接Oracle 12c FileNotFoundException报错解决方案

报错核心原因

你遇到的System.IO.FileNotFoundException错误是Oracle.DataAccess.Client非托管驱动加载依赖失败导致的,和你编写的数据库连接逻辑无关。

具体排查与解决步骤

  • 位数适配校验
    Oracle.DataAccess属于非托管ODP.NET驱动,不支持AnyCPU自动适配位数,必须和项目生成目标、本地安装的Oracle客户端/ODAC的位数完全一致。
    解决方法:右键项目 → 选择「属性」→ 切换到「生成」选项卡,将目标平台修改为和本地ODAC/Oracle客户端匹配的x86或x64,不要使用AnyCPU配置。
  • 本地依赖组件校验
    非托管Oracle.DataAccess无法仅通过拷贝dll到项目目录运行,必须依赖本地安装的Oracle客户端或ODAC核心组件,缺少对应文件就会触发文件找不到异常。
    解决方法:下载安装和Oracle 12c版本、位数匹配的ODAC安装包,安装时勾选配置到全局程序集缓存选项。
  • 推荐替代方案(规避所有驱动依赖问题)
    直接替换为全托管ODP.NET驱动,无需依赖任何本地Oracle组件:
    1. 打开项目的NuGet包管理器,搜索安装Oracle.ManagedDataAccess包
    2. 将代码开头的导入语句从Imports Oracle.DataAccess.Client替换为Imports Oracle.ManagedDataAccess.Client即可,原有连接逻辑完全不需要修改,兼容性更强,不会出现驱动加载类错误。
  • 非托管驱动引用配置优化
    如果坚持使用原有非托管驱动,选中项目引用列表中的Oracle.DataAccess,右键打开属性页,将「复制本地」属性设置为False,避免本地复制的dll和全局程序集的版本冲突。

内容的提问来源于stack exchange,提问作者Ladu Sing

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 15:21:00