Мы используем 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"));
}
Любые мысли об этом?