首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未安装的ODP.NET部署

未安装的ODP.NET部署
EN

Stack Overflow用户
提问于 2011-11-22 18:02:33
回答 3查看 2.8K关注 0票数 4

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

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

我的问题是:人们是否预见到这种odp.net部署技术会带来任何问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-12-10 19:43:21

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

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

3)一个潜在的解决方案可以让您更容易做到这一点,那就是查看"XCOPY“部署包。请参阅ODP.NET下载页面。这是一个较小的安装,允许您编写自己的自定义安装程序。您可以将这些XCOPY文件包含在您自己的安装中。

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

克里斯蒂安·谢伊

甲骨文

票数 1
EN

Stack Overflow用户

发布于 2012-08-17 12:39:51

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

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

票数 3
EN

Stack Overflow用户

发布于 2011-11-22 18:19:06

因为它们是非托管的,所以我假设它们在网络路径上是正常的,尽管这应该很容易测试。但是,我建议您最好像here那样更改DllPath配置设置,而不是更改注册表设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8224986

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档