使用Oracle客户端11部署.NET应用程序所需的最低设置是什么?

什么是能够部署与Oracle数据库交谈的.NET应用程序所需的最低限度的设置?

Josh-

非常感谢您花时间回答。 你的指示帮助了很多,并且非常接近我自己发现的。

有趣的是,我发现它可以稍微瘦一些。

对于那些在我的情况下谁

  1. 不希望他们的用户必须安装ODAC或全尺寸的Oracle客户端
  2. 不关心特定客户端安装的可重用性
  3. 需要一个“clickOnce”兼容的解决scheme

我find了一个方法来做到这一点。

一个。 下载“Oracle即时客户端11.1.0.6 – 基本精简版”。 湾 解压缩到任何文件夹并将以下文件复制到Visual Studio项目根目录中:

  • OCI.DLL
  • OCIW32.DLL
  • orannzsbb11.dll
  • oraocci11.dll
  • oraociicus11.dll
  • msvcr71.dll(不必要,应提供大多数Windows版本)

    (前五个是Oracle Instant Client的最小需求,最后一个是他们使用的Microsoft公共运行库。)

C。 下载ODAC 11 XCopy(当前版本为11.1.0.6)并解压缩。

  • OraOps11w.dll – 位于odp.net20文件夹中,位于您的项目根目录中。

    (这个文件是Oracle.DataAccess.dll与之对话并用于使用Instant Client文件的内容)。

d。 为了与ClickOnce部署兼容,请在项目中select这些文件,并确保它们是项目中的“内容”和“复制本地”。 舱单将正确地部署它们。

结果.. 你的项目中增加的有效载荷是30MB,这有点糟糕,但比100+或400+好得多,支持西方的angular色,但踢在那

  1. 它不需要path,
  2. 不需要registry项,
  3. 在部署中被隔离,并且不会pipe理其他Oracle客户端安装,
  4. 作品将所有的数据库通过9.2。
  1. 下载ODAC 11 XCopy部署。
  2. 解压缩zip文件并运行以下命令:

    install.bat odp.net20 c:\ oracle \ 11.1 \ odac myoraclehome true

  3. 复制11.1目录中的文件,并将它们放在应用程序可执行文件的子目录中(例如debug \ bin \ oracle)

  4. 将下列语句添加到Main()方法中。 他们将改变path,以便您的应用程序可执行文件将使用不包括任何其他oracle主页的oracle客户端。 环境变化是您的stream程所独有的,并且在应用程序终止时没有持久的影响:

    Environment.SetEnvironmentVariable("PATH", Environment.CurrentDirectory + "\\oracle\\11.1\\odac;" + Environment.CurrentDirectory + "\\oracle\\11.1\\odac\\bin;", EnvironmentVariableTarget.Process);

    Environment.SetEnvironmentVariable("ORACLE_HOME", Environment.CurrentDirectory + "\\oracle\\11.1\\odac", EnvironmentVariableTarget.Process);

前一阵子,这是让我的程序工作(感谢!)的线程。 我现在被告知,Oracle不喜欢你挑选6个DLL并把它们放到你的可执行文件夹中。 所以,现在,运行install.bat odp.net2 c:\ oracle odac时需要安装的每个dll都必须放在可执行文件夹中(占用空间)

我用oracle即时客户端11g运行。 下面这个非常简略的文件列表就是部署所必需的:

 OCI.dll Oracle.DataAccess.dll OraOCIEI11.dll OraOps11w.dll 

只需安装完整的客户端并从bin文件夹复制这些文件。