【问题标题】:ODP.NET deployment without installation无需安装即可部署 ODP.NET
【发布时间】:2011-11-22 10:02:32
【问题描述】:

我想部署一个使用 Oracle 的 ODP.net 的客户端应用程序,但我不想在每台机器上都安装 ODP.net。相反,我想在每台机器上复制托管 dll oracle.dataaccess.dll,并在共享磁盘上拥有它所依赖的本机 dll。

通过反编译 oracle.dataaccess.dll 代码,我看到它调用了一个从注册表中获取本机 dll 位置的方法。因此,除了在每台机器上复制 oracle.dataaccess.dll 之外,我还必须添加指向共享磁盘上本机 dll 的注册表项。

我的问题:有人预见到这种 odp.net 部署技术会引起什么问题吗?

【问题讨论】:

    标签: deployment odp.net


    【解决方案1】:

    您需要从最新客户端获得的唯一文件是: Oracle.DataAccess.dll oci.dll oraociicus11.dll OraOps11w.dll

    只要确保它们被复制到输出目录,一切都会正常工作。无需在任何地方注册。但是,您需要使用各自架构的 DLL 进行单独的 x86 和 x64 构建,因为 Any CPU .NET 应用程序将在 32 位操作系统上以 32 位模式运行,而在 64 位操作系统上以 64 位模式运行。

    【讨论】:

      【解决方案2】:

      1) ODP.NET 目前是托管和非托管 DLL 的混合体。它还依赖于来自 Oracle 客户端的较低级别的非托管 DLL - 例如用于网络等。

      2) 在部署到的每台计算机上,您都需要所有这些必需的 ODP.NET 和客户端 DLL。

      3) 一种使您更轻松的潜在解决方案是查看“XCOPY”部署包。请参阅 ODP.NET 下载页面。这是一个较小的安装,允许您编写自己的自定义安装程序。您可以在自己的安装中包含这些 XCOPY 文件。

      4) Oracle 将在 2012 年对完全托管的提供商进行测试,这将使这种情况变得更好(总大小仅为几兆字节)。

      克里斯蒂安·谢伊

      甲骨文

      【讨论】:

        【解决方案3】:

        由于它们不受管理,我假设它们在网络路径上是可以的,尽管这应该很容易测试。但是,我建议您最好不要更改注册表设置,而是按照here 的描述更改DllPath 配置设置。

        【讨论】:

          猜你喜欢
          • 2015-05-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-01-31
          • 1970-01-01
          • 2016-04-05
          • 1970-01-01
          • 2012-06-12
          相关资源
          最近更新 更多