20

우리는 WIX를 사용하여 우리가 작성한 많은 서비스를 설치하고 있습니다. 현재 설치된 서비스를 덤프 할 수있는 빠른 유틸리티를 작성 중입니다. 하위 키를 반복합니다.

SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 

찾고있는DisplayName. 문제는 내 10 개의 서비스 중 2 개만 목록에 표시된다는 것입니다.

그러나 Regedit의 하위 키를 보면 거기에 있습니다. 또한, 그들은 설치된 프로그램에 있습니다 (그리고 나는 Win32_Product에서도 SELECT *로 찾을 수 있습니다).

필자는 MSDN 문서를 살펴 보았습니다. 필자가 누락 한 레지스트리에 대한 특별한 견해가 있는지 알아 내려고했습니다. 어쩌면 특권 문제일까요? 하지만 관리자로 도구를 실행하고 있습니다. 하이브 마운팅 문제가 있습니까?

코드로 명확히하기 위해, 여기 테스트 애플 리케이션 코드가있다.이 대답) :

String registryKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
using(Microsoft.Win32.RegistryKey key = Registry.LocalMachine.OpenSubKey(registryKey))
{
  foreach(String subkeyName in key.GetSubKeyNames())
    Console.WriteLine(key.OpenSubKey(subkeyName).GetValue("DisplayName"));
}

이것에 대한 어떤 생각?


  • 너 정확히 뭘 하려구? 또한이 태그를 " Wix "라고 표시해야합니다. - dvallejo
  • 또한 제목에 태그 (" C #")를 반복하지 마십시오. 생각하지 않으셔도됩니다.GetSubKeyNamesC #방법이지만 제목은 그런 식으로 읽습니다. - John Saunders

1 답변


25

문제는 32/64 비트 문제입니다. 설치 중 일부가

HKEY_LOCAL_MACHINE\Software\Wow6432Node\... 

둘 모두를 열거하면 모든 설치가 완료됩니다.

분명히 나는 또한 사용할 수 있습니다.RegistryKey.OpenBaseKey()~와RegistryView.Registry64/32대신에Wow6432Node너무.

연결된 질문


관련된 질문

최근 질문