Używamy WIX do zainstalowania wielu usług, które tworzymy. Piszę szybkie narzędzie do zrzutu aktualnie zainstalowanych usług. Po prostu powtarzam następujące podklucze:Rejestr GetSubKeyNames() zawiera różne klucze niż Regedit?
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
poszukuję DisplayName
. Problem polega na tym, że tylko dwie z moich dziesięciu usług pojawiają się na liście.
Jednak kiedy patrzę na podklucze w Regedit, są tam. Jak dobrze, są one w zainstalowanych programach (i mogę je znaleźć również w SELECT * od Win32_Product).
Przeglądałem dokumenty MSDN, próbując dowiedzieć się, czy jest jakiś specjalny widok rejestru, którego mi brakuje. Może to kwestia przywilejów? Ale używam tego narzędzia jako administrator. Czy jest jakiś problem z montowaniem ula?
Wystarczy być jasne, z kodem, tutaj jest test kod aplikacji (od this answer):
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"));
}
Wszelkie myśli o tym?
Co dokładnie próbujesz zrobić? Powinieneś również oznaczyć to jako "Wix". – dvallejo
Proszę również nie powtarzać znaczników ("C#") w tytule. Jestem pewien, że nie uważasz, że 'GetSubKeyNames' jest metodą C#, ale tytuł jest tak czytany. –