Oracle免客户端For .Net(只为用NewLife.XCode开发Oracle的同学服务)

简介: 自从发布了一篇博客Oracle免客户端For .Net(增加分析Devart和DataDirect)后,非常非常多的同学前来问各种Oracle客户端运行时安装配置的问题,严重影响了我们团队的正常工作和日常交流。

    自从发布了一篇博客Oracle免客户端For .Net(增加分析Devart和DataDirect)后,非常非常多的同学前来问各种Oracle客户端运行时安装配置的问题,严重影响了我们团队的正常工作和日常交流。我甚至多次怀疑我是不是不应该发那篇博文,但是又不忍心删除!

    我们写那篇博文的初衷,仅仅是为使用我们的数据映射框架XCode(包含ORM)进行Oracle开发的同学而准备!

    只是因为这些技术点对于非XCode用户也有用,所以才发出来。不曾想,给我们自己带来这么多的麻烦。

    这里先为XCode用户做一点补充,非XCode用户请直接跳过,看结尾!

 

1,新版本XCode内置Oracle客户端运行时的环境检测,自动在这些目录查找OCI:当前目录、上一级的OracleClient目录、各个盘下的OracleClient目录

2,XCode支持在连接字符串里面通过DllPath=X:\OracleClient来指定OCI目录

3,如果XCode检测不到任何Oracle客户端运行时,会自动到服务器下载一份,并部署到C:\OracleClient。可以自己拷贝到别的盘去

4,所以,XCode用户可以用MSSQL或SQLite等数据库开发好应用程序,然后部署的时候修改连接字符串为Oracle的连接字符串即可,XCode会为你准备好环境。

5,XCode所支持的各大数据库,只要有连接字符串,就可以工作!

6,除MSSQL外,使用其它数据库全部会自动下载相应的驱动(分x86和x64):Access、SqlCe、SQLite、Oracle、MySql、Firebird、PostgreSQL

7,如果生产环境机器不能上网,可以自己把驱动等相关文件拷贝带走。只有用Oracle时会有一个目录放在C:\OracleClient,其它数据库下载的驱动文件全部放在当前目录。(主要是因为OCI那个目录太大)

8,XCode只做下载驱动来使用,不修改系统环境变量和注册表等任何东西,绝对绿色。

9,如果你只想要一个Oracle客户端运行时,可以用我们代码生成器XCoder上新增的一个功能(“Oracle客户端运行时检查”),它会给你准备好一个可用环境

image

 

最新版XCoder下载链接:http://www.kuaipan.cn/file/id_2378544298616942.html

 

非XCode用户请看:

1,只要有OCI,可以不用安装Oracle的任何东西,就可以连上数据库,可能需要配置一下环境变量和注册表

2,该方法无视任何编程语言,非.Net的也可以。比如那个PL Dev,只需要拷贝OCI,然后选项里面指定oci目录即可

3,如果你怀疑上述两点,你可以不用看本文了

4,OCI.dll的版本和Oracle.DataAccess.dll要求的版本必须一致,不一致就自己凑,找到一致的

5,.Net程序调用Oracle.DataAccess.dll,而Oracle.DataAccess.dll会找OCI.dll,顺序是:当前目录、配置文件指定目录、环境变量Path、系统目录

6,如果上面一点没看懂,只怪你Windows没学好。目录搜索逻辑是Windows开发的基本功。

7,再次重申,所做的一次,配置环境变量也好,配置注册表也好,只是为了找到OCI.dll!!!

8,哦,忘了一点,注意OCI所在目录的权限,也许应用程序没有权限执行OCI.dll。另外注意各个目录配置可能导致的DLL版本冲突。

100,据Oracle官方论坛说,官方即将推出纯托管的驱动,到时候只要一个dll就行,再也没有这么多烦人的事情。如果上面这么多办法都不行,就等等吧。

10000,如果还不行,那就用XCode算了!

 

最后:

    在确定你有仔细阅读、思考这两篇博文的内容之前,请不要打搅我们!仅作技术交流,我们不承担任何后果!

 

欢迎各种.Net及逆向工程的交流,QQ群:1600800

 

我不相信神话,我只相信汗水!我不相信命运,我只相信双手!
相关文章
|
中间件 Go
Golang | Gin:net/http与Gin启动web服务的简单比较
总的来说,`net/http`和 `Gin`都是优秀的库,它们各有优缺点。你应该根据你的需求和经验来选择最适合你的工具。希望这个比较可以帮助你做出决策。
766 35
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
464 0
|
人工智能 芯片
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
D1net阅闻|OpenAI员工疯狂暗示,内部已成功开发ASI?被曝训出GPT-5但雪藏
|
开发框架 .NET C#
在 ASP.NET Core 中创建 gRPC 客户端和服务器
本文介绍了如何使用 gRPC 框架搭建一个简单的“Hello World”示例。首先创建了一个名为 GrpcDemo 的解决方案,其中包含一个 gRPC 服务端项目 GrpcServer 和一个客户端项目 GrpcClient。服务端通过定义 `greeter.proto` 文件中的服务和消息类型,实现了一个简单的问候服务 `GreeterService`。客户端则通过 gRPC 客户端库连接到服务端并调用其 `SayHello` 方法,展示了 gRPC 在 C# 中的基本使用方法。
615 5
在 ASP.NET Core 中创建 gRPC 客户端和服务器
|
缓存 算法 安全
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
精选10款C#/.NET开发必备类库(含使用教程),工作效率提升利器!
852 12
|
SQL 小程序 API
如何运用C#.NET技术快速开发一套掌上医院系统?
本方案基于C#.NET技术快速构建掌上医院系统,结合模块化开发理念与医院信息化需求。核心功能涵盖用户端的预约挂号、在线问诊、报告查询等,以及管理端的排班管理和数据统计。采用.NET Core Web API与uni-app实现前后端分离,支持跨平台小程序开发。数据库选用SQL Server 2012,并通过读写分离与索引优化提升性能。部署方案包括Windows Server与负载均衡设计,确保高可用性。同时针对API差异、数据库老化及高并发等问题制定应对措施,保障系统稳定运行。推荐使用Postman、Redgate等工具辅助开发,提升效率与质量。
722 0
|
Linux API C#
基于 .NET 开发的多功能流媒体管理控制平台
基于 .NET 开发的多功能流媒体管理控制平台
411 9
|
Web App开发 前端开发 调度
一款基于 .NET + Blazor 开发的智能访客管理系统
一款基于 .NET + Blazor 开发的智能访客管理系统
326 8
|
前端开发 JavaScript C#
基于.NET8+Vue3开发的权限管理&个人博客系统
基于.NET8+Vue3开发的权限管理&个人博客系统
348 7
|
网络协议 C#
基于.NET WinForm开发的一款硬件及协议通讯工具
基于.NET WinForm开发的一款硬件及协议通讯工具
296 7