c# - 以编程方式确定 Oracle Home 安装版本?

标签 c# windows oracle remote-registry

我需要通过程序确定服务器上每个 Oracle 主目录中安装的 Oracle 版本。由于主页中可能还没有创建任何数据库,因此我需要能够在数据库之外执行此操作(即,无需连接到数据库)。此外,最好能够从远程程序执行此操作。

这是来自运行 .Net(C#,如果重要的话)的 Windows 程序。

我目前正在读取远程注册表项(使用此技术:How to Read Remote Registry Keys?),以根据 this method 查找所有 Oracle Homes .这工作正常,但是,我查看了这些 key ,没有看到任何关于确切版本/发布的信息。

Oracle Home 本身的名称当然是 1) 不是可靠的指标,并且 2) 没有确切的版本/发行版(例如“10.2.0.4.0”)。基本上,我正在寻找一种方法来了解 Oracle Universal Installer 在“已安装产品”按钮中告诉您的内容。

最佳答案

PATH 中搜索文件oci.dll,这是Oracle Client 安装的主要文件之一。您可以使用 FileVersionInfo.GetVersionInfo("oci.dll");

读取此文件的版本

为了获取 Registry Hive,在 PATH(即 Oracle Home)中搜索文件 oracle.reg。此文件是包含注册表项的简单文本文件,例如 SOFTWARE\ORACLE\KEY_OraClient11g_home1。您将在 HK_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient11g_home1 中找到相关的注册表值 `

关于c# - 以编程方式确定 Oracle Home 安装版本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35609327/

相关文章:

c# - 如何在 C# 中使用 LINQ 对通用 IEnumerable (IEnumerable<T>) 进行 OrderBy?

c# - .NET 2.0 使用 ThreadPool 处理非常大的列表

D 的 MySQL 语言绑定(bind)?

javascript - 如何模拟用户使用 javascript (JQuery) 按下 Ctrl "plus"加号或减号?

oracle - 使用11g客户端从Oracle 10g数据库导出

oracle - 如何使用 sysdba 权限创建 Oracle 数据库链接

c# - 带有服务引用的 DLL 应该读取自定义配置文件

windows - 当回收站已满时,ShFileOperation 会做什么?

oracle - 在验证(PL/SQL)中如何知道页面项是否已更新?类似于JS中的apex.item().isChanged

c# - 我对这段代码的理解是否正确?