在Windows 2012 R2终端服务器上以C#格式获取注册表有什么问题

在Windows 2012 R2终端服务器上以C#格式获取注册表有什么问题,c#,registry,windows-server-2012-r2,C#,Registry,Windows Server 2012 R2,我想用下面的代码获取注册表值 object key_10 = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot", "Path", null); 一般来说,它可以工作,但当我在Windows Server 2012 R2终端上运行它时,会得到一个空值。 我有本地管理员权限。 注册表中存在该值(使用regedit.exe检查) .NET Framework是4.5如果它

我想用下面的代码获取注册表值

object key_10 = Registry.GetValue(@"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\InstallRoot", "Path", null);
一般来说,它可以工作,但当我在Windows Server 2012 R2终端上运行它时,会得到一个空值。 我有本地管理员权限。 注册表中存在该值(使用regedit.exe检查)
.NET Framework是4.5

如果它返回null,请将构建体系结构设置为任何CPU。操作系统可能会以不同方式虚拟化32位和64位注册表。
参考资料:

如果返回null,请将构建架构设置为任何CPU。操作系统可能会以不同方式虚拟化32位和64位注册表。
参考资料:

当您的程序被迫以32位模式运行时,您无法看到该键。谷歌“注册表重定向器”了解更多信息。删除强制抖动或使用RegistryKey.OpenBaseKey()以便可以指定视图。当程序强制以32位模式运行时,无法看到该键。谷歌“注册表重定向器”了解更多信息。删除抖动强制或使用RegistryKey.OpenBaseKey()以便可以指定视图。