Мы используем WIX для установки ряда создаваемых нами сервисов. Я пишу быструю утилиту для сброса установленных служб. Я просто перебираю подразделы:
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
ищу DisplayName
. Проблема в том, что в списке отображаются только две из моих десяти служб.
Однако, когда я смотрю на подразделы в Regedit, они там есть. Кроме того, они есть в установленных программах (и я могу найти их в SELECT * из Win32_Product).
Я просмотрел документы 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"));
}
Есть мысли по этому поводу?