System.Data”中不存在类型或命名空间名称“OracleClient

时间:2021-05-14 07:47:11
CS0234: 命名空间“System.Data”中不存在类型或命名空间名称“OracleClient”(是否缺少程序集引用?)


1.我在项目里添加了System.Data.OracleClient;也在cs文件里using System.Data.OracleClient;
2.我也(已)正确安装oracle client 客户端。但问题依旧!!!




网上搜索,解决方法之一,加Assembly(具体怎么加我不清楚,希望高人指点):
ASP.NET需要你在Server上安装OracleClient, 安装之后要么你可以把那个DLL的Assembly拷贝到你的Application的Bin目录下面,要么需要在你的machine.config里面加上这个assembly的metadata,否则ASP.NET的默认编译选项无法找到。


解决方法二:把相应的dll文件添加到项目的bin目录里,问题解决了^_^
C:\>copy c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Data.OracleClient.dll E:\web\webApplication1\WebApplication1\bin\





如果你将应用程序生成x86而不是Any CPU时,在64位操作系统中不会出错错误,而在32位操作系统中可能会出现以下错误


“/xxxxx”应用程序中的服务器错误。 
-------------------------------------------------------------------------------- 
未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 
异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“xxx”或它的某一个依赖项。试图加载格式不正确的程序。 
源错误: 
执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。 


解决方法: 
将应用程序生成为Any CPU就可以了 
反之,如果系统是64位的Win7,就应该将新项目的生成目标平台改为x86 




综上: 
64位的Win7 解决方案的生成目标平台设置为x86 
32位操作系统 解决方案的生成目标平台设置为AnyCPU 


另外一个网友的问题解决方法: 


我遇到过这个问题有两次,不过环境不同。 


第一次:Windows 2008 Server R2 64位; 


第二次:Windows 7 64位; 


原因分析:操作系统是64位的,但发布的程序引用了一些32位的ddl,所以出现了兼容性的问题。 


解决方案:IIS——应用程序池——高级设置——启用32位应用程序 :true。