我正在使用 Microsoft Visual Studio Professional 2022 开发现有的 C# 应用程序。在调试器中我可以看到:
Microsoft.Win32.RegistryKey rootPath = Microsoft.Win32.RegistryKey.LocalMachine.OpenSubKey("SOFTWARE\\CompanyName\\ConfigFiles");
if ( rootPath != null ) {
path = rootPath.GetValue("Root").ToString();
}
在调试器中,当单步执行对 OpenSubKey 的调用时,我可以看到 rootPath 返回为 NOT null,然后调用 GetValue,但是我已经以管理员身份启动了 regedit,并且我已经查找:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE\CompanyName\ConfigFiles
路径存在至:
Computer\HKEY_LOCAL_MACHINE\SOFTWARE
那么这在源代码中是如何工作的?我在这里缺少什么吗?
发现问题,我使用的是 Windows 10,它是 64 位操作系统,如果我从命令控制台输入 regedit,它会启动有问题的 32 位版本,解决方案是打开命令控制台并转到:
C:\Windows\SysWOW64
然后输入:
regedit
问题现已解决,以前隐藏的缺失信息现在可见。