20
我們使用WIX來安裝我們創建的一些服務。我正在編寫一個快速實用程序來轉儲當前安裝的服務。我只是重複了以下子項:註冊表GetSubKeyNames()列出比Regedit不同的鍵?
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
正在尋找DisplayName
。問題是,我的十個服務中只有兩個顯示在列表中。
但是,當我查看Regedit中的子項時,它們在那裏。它們也在安裝的程序中(我也可以在Win32_Product的SELECT *中找到它們)。
我查看了MSDN文檔,試圖找出是否有一些我缺少的註冊表的特殊視圖。也許這是一個特權問題?但我以管理員身份運行該工具。是否有一些蜂巢掛載問題?
只是要清楚的代碼,這裏是測試程序代碼(從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"));
}
對這個有什麼想法?
你究竟想要做什麼?另外,你應該把它標記爲「Wix」。 – dvallejo 2010-06-24 17:23:21
另外,請不要在標題中重複標籤(「C#」)。我相信你不認爲'GetSubKeyNames'是一個C#方法,但標題是這樣讀取的。 – 2010-06-24 18:59:13