2016-06-08 4 views
1

Я хочу, чтобы получить значение реестра с помощью следующего фрагмента кодаЧто случилось с получением реестра C# на Windows, 2012 R2 Terminal Server

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 is 4.5

+0

Вы не можете видеть, что ключ, когда ваша программа вынуждена работать в 32-битном режиме. Google "редиректор реестра", чтобы узнать больше. Удалите форматирование дрожания или используйте RegistryKey.OpenBaseKey(), чтобы вы могли указать представление. –

ответ

0

Если он возвращает значение null, установите архитектуру сборки в любой процессор. Операционная система может виртуализировать 32-разрядные и 64-разрядные реестры по-разному.
Ссылка:
reading-64bit-registry-from-a-32bit-application