C# 注册表GetSubKeyNames()列出的键与Regedit不同?
我们正在使用WIX安装我们创建的许多服务。我正在编写一个快速实用程序来转储当前安装的服务。我只是在以下子键上迭代:C# 注册表GetSubKeyNames()列出的键与Regedit不同?,c#,wix,registry,C#,Wix,Registry,我们正在使用WIX安装我们创建的许多服务。我正在编写一个快速实用程序来转储当前安装的服务。我只是在以下子键上迭代: SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall 正在查找DisplayName。问题是,我的十项服务中只有两项出现在列表中 但是,当我查看Regedit中的子键时,它们就在那里。同样,它们也在已安装的程序中,我也可以在Win32_产品的SELECT*中找到它们 我查看了MSDN文档,试图找出我缺少的注册表的某些特殊视图。也
SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall
正在查找DisplayName。问题是,我的十项服务中只有两项出现在列表中
但是,当我查看Regedit中的子键时,它们就在那里。同样,它们也在已安装的程序中,我也可以在Win32_产品的SELECT*中找到它们
我查看了MSDN文档,试图找出我缺少的注册表的某些特殊视图。也许这是一个特权问题?但是我以管理员的身份运行这个工具。是否存在蜂箱安装问题
为了明确代码,以下是测试应用程序代码:
对此有何想法?问题是32/64位的问题。似乎有些装置是在地下进行的
HKEY_LOCAL_MACHINE\Software\Wow6432Node\...
当我把它们都列举出来时,我得到了我所有的安装
显然,我也可以将RegistryKey.OpenBaseKey与RegistryView.Registry64/32一起使用,而不是WOW6432节点。您到底想做什么?此外,您应该将其标记为Wix。此外,请不要重复标题中的标记C。我确信您不认为GetSubKeyNames是一个C方法,但标题是这样读的。
HKEY_LOCAL_MACHINE\Software\Wow6432Node\...