2011-11-22 74 views
3

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

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

我的问题:没有一个预见从odp.net部署这种技术产生的任何问题?

回答

1

1)ODP.NET目前是托管和非托管DLL的混合。这也依赖于从Oracle客户端下级托管DLL - 例如用于网络等

2)您将需要每次都部署到机器上,这些需要ODP.NET和客户端的DLL。

3)一个潜在的解决方案上你是看进入“XCOPY”部署包,以使它更容易些。请参阅ODP.NET下载页面。这是一个较小的安装,并允许您编写自己的自定义安装程序。您可以将这些XCOPY文件作为您自己安装的一部分。

4)甲骨文会做一个全面管理供应商在2012年公测,这将使这种情况要好得多(总规模将只有一对夫妇兆字节)。

基督教吉文

甲骨文

0

因为他们是不受管理我认为他们会成为一个网络路径就OK了,虽然这应该很容易测试。不过,我建议,不要更改注册表设置,您可能更好更改DllPath配置设置,如here所述。

3

您从最新的客户端唯一需要的文件是: Oracle.DataAccess.dll OCI.DLL oraociicus11.dll OraOps11w.dll

只是要确定它们被复制到输出目录,一切都会工作。任何地方都不需要注册。但是,由于Any CPU .NET应用程序将在32位操作系统上以32位模式运行,而在64位操作系统上以64位模式运行,您将需要使用各自体系结构的DLL进行单独的x86和x64生成。