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

时间:2009-05-28 21:23:47

标签: oracle odp.net

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

4 个答案:

答案 0 :(得分:48)

约什 -

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

有趣的是,我发现它可以更加纤细。

对于那些在我的情况下

的人
  1. 不希望其用户必须安装ODAC或全尺寸Oracle客户端
  2. 不关心特定客户端安装的可重用性
  3. 需要“clickOnce”兼容解决方案
  4. 我找到了一种方法。

    一个。下载“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所需的最小值,最后一个是他们使用的微软公共运行时。)

    ℃。下载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。

答案 1 :(得分: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主目录的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);

答案 2 :(得分:3)

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

答案 3 :(得分:2)

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

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

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