2010-12-13 3 views
7

Windows Installer 4.5가 컴퓨터에 설치되어 있는지 확인하는 가장 효율적인 방법을 찾으려고합니다.C# 사용 Windows Installer 4.5가 설치되어 있는지 확인하는 방법

2.0 응용 프로그램 (3.5로 변환 할 수 없음)이 있고 MSDE에서 SQL Server 2008 Express로 업그레이드 중입니다. 2008 Express의 요구 사항 중 하나는 Windows Installer 4.5가 시스템에 설치되어 있다는 것입니다. 이 응용 프로그램은 내부 네트워크에서 또는 외부에서 시스템에 전역으로 배포됩니다.

배치 파일이나 C# 코드를 실행하여 설치 관리자 버전을 확인하는 것이 좋습니다.

권장 방법을 알려 주시고 코드 (또는 코드 링크)를 제공해주십시오.

감사합니다.

답변

10

당신은 시스템 디렉토리에 msi.dll 라이브러리의 파일 버전을 읽을 수 있습니다

using System.Diagnostics; 
using System.IO; 

public bool IsWindowsInstaller45Installed() 
{ 
    FileVersionInfo info; 
    string fileName = Path.Combine(Environment.SystemDirectory, "msi.dll"); 
    try { 
     info = FileVersionInfo.GetVersionInfo(fileName); 
    } catch (FileNotFoundException) { 
     return false; 
    } 

    return (info.FileMajorPart > 4 
      || info.FileMajorPart == 4 && info.FileMinorPart >= 5); 
} 
+0

빠른 응답을 고맙게 생각합니다. 고맙습니다! – tc44

1

, 당신은 SYSTEM32에 MSI.DLL의 버전으로 갈 수 있지만, 당신은 당신이 발견 된 FileVersionInfo 클래스를 사용할 수 있습니다 호출/P 필요하지 않습니다

이 MSDN 기사는 몇 가지 예제 코드가 있습니다 System.Diagnostics.

+0

비록 당신이 PInvoke를 멀리 가지고, 당신은 재미의 대부분을 멀리 복용하는 경우 : –

+1

아니, 프레드릭 멀리했다 OP에게 사본 및 붙여 넣기 답변을 제공하여 모든 재미. 나는 숙제하지 않는 질문에 답하고 싶다. –

관련 문제