通过C#访问Oracle数据库而不强制用户安装Oracle客户端

通过C#访问Oracle数据库而不强制用户安装Oracle客户端,c#,oracle,C#,Oracle,我在查询oracle数据库时使用oracle.dataaccess.dll。但是,如果用户的机器上没有安装Oracle客户端,那么它就不起作用。是否可以在dll中包含Oracle客户端,这样用户就不必显式安装客户端?您可以随应用程序一起提供 这是一个完整的Oracle客户端,但不需要安装,可以直接使用 但是,您需要注意以下几点: 即时客户端的大小超过120MB 对于x86和x64,您需要不同版本的即时客户端,使其大小达到250 MB左右 使用即时客户端的优点是,您不必担心Oracle客户端的安装

我在查询oracle数据库时使用oracle.dataaccess.dll。但是,如果用户的机器上没有安装Oracle客户端,那么它就不起作用。是否可以在dll中包含Oracle客户端,这样用户就不必显式安装客户端?

您可以随应用程序一起提供

这是一个完整的Oracle客户端,但不需要安装,可以直接使用

但是,您需要注意以下几点:

  • 即时客户端的大小超过120MB
  • 对于x86和x64,您需要不同版本的即时客户端,使其大小达到250 MB左右

  • 使用即时客户端的优点是,您不必担心Oracle客户端的安装版本。即使计算机已经安装了不兼容的版本,您的应用程序也会工作,因为它的版本正确。

    如果您能够支付,我已经成功地将DevArt's作为Oracle提供的客户端的替代品

    它提供了一种连接和查询Oracle的完全受管理的方式,以及对
    GUID
    booleans
    和Oracle缺乏支持的一些其他数据类型(在Oracle中
    GUID
    raw(16)
    )的实体框架和nHibernate支持和仿真

    您只需在项目中附带一个托管DLL。

    正是您想要的。现在有了12c版本,它是一个简单的单一程序集,您可以与应用程序一起部署,而不必担心Oracle的安装

    这是非常无痛的起床和运行。以下是一些链接:


    通过在我的app.config中创建Oracle连接字符串并复制所有客户端DLL,我终于让它正常工作了,如图所示:


    有时候你可以,但通常你可以在项目中附带库dll——这还不够吗?@MarcGravel:不幸的是,Oracle还不够。我想你指的是System.Data.OracleClient。我不担心
    Oracle.DataAccess.Client
    位于.Net4中。我没有听说过
    System.Data.OracleClient
    ,它是与.Net打包的吗?System.Data.OracleClient是微软在框架中提供的,是折旧后的。Oracle.DataAccess是Oracle为.net 2和4提供的,不折旧。(Oracle的客户端现在也有EF支持,托管客户端的beta版是一个没有安装的dll。)Tridus是对的。Oracle.DataAccess.Client不是.NET framework的一部分。它是由Oracle提供的,只是非托管Oracle DLL的托管包装。我已删除了有问题的数据:)感谢您的帮助clarification@Zenadix现在应该可以工作了,Oracle在他们的下载页面上移动,所以我转到了主页面。有人能指导我如何“发布”我的应用程序吗?它是一个带有C#后端的asp.net应用程序。我开发的应用程序依赖于Oracle.DataAccess.dll,它需要任何代码更改吗?