有什么问题让注册表在C#在Windows 2012 R2终端服务器

问题描述:

我想用下面这段代码来获取注册表值有什么问题让注册表在C#在Windows 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

+0

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

如果它返回null,则将您的构建体系结构设置为Any CPU。操作系统可能以不同方式虚拟化32位和64位注册表。
参考:
reading-64bit-registry-from-a-32bit-application