2017-03-24 4 views

답변

1

을 사용하여 레지스트리에서 키/값 쌍을 통해 설치된 버전을 읽을 수있는 다른 방법이 있습니까? Oracle 버전은 레지스트리에서 사용할 수 없습니다.

컴퓨터에 여러 Oracle 클라이언트가 설치되어있을 수 있습니다. "오라클 클라이언트"는 많은 다른 구성 요소로 구성되며 원칙적으로 모두 다른 버전을 가질 수 있습니다. 인벤토리 파일을 읽는 것은 신뢰할 수 없습니다. "Oracle Instant Client"의 경우에도 생성되지 않았습니다. 로그 파일과 비슷합니다.

당신이 할 수있는 일은 각 오라클 클라이언트의 핵심 DLL 중 하나 인 oci.dll 파일에 대한 PATH 폴더를 검색하는 것입니다. 이 파일의 버전을 읽어보십시오.

foreach (string folder in Environment.GetEnvironmentVariable("PATH").Split(';')) { 
    if (File.Exists(Path.Combine(folder, "oci.dll"))) { 
     var oraFileVersion = FileVersionInfo.GetVersionInfo(Path.Combine(folder, "oci.dll")); 
     Console.WriteLine(String.Format("Found Oracle oci.dll Version {0}.{1}", oraFileVersion.FileMajorPart, oraFileVersion.FileMinorPart)); 
    } 
} 
관련 문제