37

能够部署与 Oracle 数据库通信的 .NET 应用程序所需的最小设置是什么?

4

4 回答 4

48

乔什-

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

有趣的是,我发现它可以再瘦一点。

对于像我这样的人

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

我找到了一种方法来做到这一点。

一种。下载“Oracle Instant Client 11.1.0.6 - Basic Lite”。湾。解压缩到任何文件夹并将以下文件复制到 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 部署兼容,请在您的项目中选择这些文件,并确保它们在您的项目中是“内容”和“复制本地”。然后清单将正确部署它们。

结果…… 添加到您的项目的有效负载是 30mb,这有点糟糕,但比 100+ 或 400+ 好得多,支持西方字符,但踢屁股

  1. 它不需要路径,
  2. 不需要注册表项,
  3. 在部署中是隔离的,不使用其他 Oracle 客户端安装,
  4. 工程将使所有数据库恢复到 9.2。
于 2009-05-28T21:57:26.807 回答
6
  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() 方法中。他们将更改路径,以便您的应用程序可执行文件将使用排除任何其他 oracle home 的 oracle 客户端。环境更改是您的进程独有的,并且在应用程序终止时不会产生持久影响:

    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);

于 2009-05-28T21:28:48.750 回答
3

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

于 2012-11-06T19:23:18.040 回答
2

我正在使用 oracle 即时客户端 11g 运行。我发现部署所需的以下文件列表非常少:

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

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

于 2010-11-18T08:15:19.887 回答