Я прочитал почти все другие вопросы к этой теме, но они обычно решаются с использованием неправильного представления архитектуры в реестре.Registry OpenSubkey возвращает null, хотя он есть
Я пытаюсь открыть подраздел в «... \ Outlook \ Addins». У меня есть подраздел, доступный для обеих архитектур («HKLM \ Software ...» и «HKLM \ Software \ Wow3264Node ...» ). Но через тестирование я знаю, что код выглядит под «WOW6432Node».
Итак, вот фрагмент кода.
var hklm = RegistryKey.OpenBaseKey RegistryHive.LocalMachine,RegistryView.Default);
var reg = hklm.OpenSubKey(@"Software\Microsoft\Office\Outlook\Addins\MyAddin", false);
Я также попытался
var hklm = RegistryKey.OpenBaseKey RegistryHive.LocalMachine,RegistryView.Registry32);
var hklm = RegistryKey.OpenBaseKey RegistryHive.LocalMachine,RegistryView.Registry64);
отладить его и искал подразделов, которые видны, которые дают мне все другие записи (даже вновь созданные из них), но не один я ищу для.
Я также проверил разрешения на регистрацию, которые являются такими же, как и для других, которые я вижу.
Итак, почему я всегда получаю null для «reg»?
Редактировать: Может быть, я должен добавить, что я ищу этот ключ изнутри addin. При попытке его от короткого консольного приложения тест, я вижу подключ при вызове
reg.GetSubKeyNames();
спасибо, Джеральд, за добавление тега – Andreas