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

Jos*_*off 36 oracle odp.net

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

小智 48

Josh-

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

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

对于那些在我的情况下谁

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

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工作.


Jos*_*off 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);

  • 你忘了牺牲一只山羊. (59认同)
  • 在运行时以编程方式更改PATH的替代方法是使用app config设置:configuration/oracle.dataaccess.client/settings/add name ="DllPath"告诉oracle驱动程序非托管dll路径所在的位置.请参阅http://docs.oracle.com/html/E15167_01/InstallODP.htm"非托管DLL的搜索顺序"部分.此方法还将确保支持并排版本控制. (2认同)
  • 对'甲骨文' - NuGet包怎么样? (2认同)