Deployment 不安装ODP.NET部署

Deployment 不安装ODP.NET部署,deployment,odp.net,Deployment,Odp.net,我想部署一个使用Oracle的ODP.net的客户端应用程序,但我不想在每台机器上都安装ODP.net。相反,我希望在每台机器上复制托管dll oracle.dataaccess.dll,并在共享磁盘上提供它所依赖的本机dll 通过反编译oracle.dataaccess.dll代码,我看到它调用了一个从注册表获取本机dll位置的方法。因此,除了在每台机器上复制oracle.dataaccess.dll之外,我还必须添加指向共享磁盘上本机dll的注册表项 我的问题是:我们是否预见到odp.net

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

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


我的问题是:我们是否预见到odp.net部署技术会产生任何问题?

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

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

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

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

4) 甲骨文将在2012年对一家完全管理的提供商进行测试,这将使情况变得更好(总大小仅为几兆字节)

克里斯蒂安·谢伊


Oracle

您只需要从最新客户端获取以下文件: Oracle.DataAccess.dll oci.dll oraociicus11.dll OraOps11w.dll

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