Nous utilisons WIX pour installer un certain nombre de services que nous créons. J'écris un utilitaire rapide pour vider les services actuellement installés. Je viens de itérer sur les sous-clés:Registre GetSubKeyNames() répertorie différentes clés que Regedit?
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
recherche d'DisplayName
. Le problème est, seulement deux de mes dix services apparaissent dans la liste.
Cependant, quand je regarde les sous-clés dans Regedit, ils sont là. De plus, ils sont dans les programmes installés (et je peux les trouver dans SELECT * de Win32_Product aussi). J'ai regardé les documents MSDN, essayant de trouver s'il y a une vue spéciale du registre qui me manque. Peut-être que c'est un problème de privilège? Mais je cours l'outil en tant qu'administrateur. Y at-il un problème de montage de la ruche?
Juste pour être clair avec le code, voici le code d'application de test (de 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"));
}
Toute réflexion sur ce sujet?
Qu'essayez-vous exactement de faire? Aussi, vous devriez marquer ceci comme "Wix". – dvallejo
Veuillez également ne pas répéter les balises ("C#") dans le titre. Je suis sûr que vous ne pensez pas que 'GetSubKeyNames' est une méthode C#, mais le titre est lu de cette façon. –