Я создал подраздел в реестре, HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector
. Когда я загружаю этот подраздел с помощью непосредственных окон Visual Studio, пока запущенное приложение не запущено, я могу прочитать подраздел.Не удается обойти виртуализацию реестра
Однако, когда мое приложение ищет HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector
, оно не может найти его. Он даже не может найти HKEY_LOCAL_MACHINE\SOFTWARE\MyApp
. Это как будто есть другой
Однако, когда я запускаю приложение в режиме отладки и он приостановлен, тот же код не может найти HKEY_LOCAL_MACHINE\SOFTWARE\MyApp
не говоря уже HKEY_LOCAL_MACHINE\SOFTWARE\MyApp\APIConnector
.
После небольшого поиска, похоже, я стал жертвой виртуализации реестра. Поэтому я добавил манифест, который заставляет приложение требовать права администратора (диалог UAC), но виртуализация реестра все еще происходит. Документация Microsoft по этому вопросу утверждает, что этого не должно быть. Помогите!
Возможно, на вас повлияло перенаправление реестра Wow64 вместо (или вместе с?) Виртуализацией реестра: http://msdn.microsoft.com/en-us/library/aa384253.aspx У Windows наверняка много дыма и зеркала при доступе к реестру. –
Да, WoW64 является виновником. По какой-то причине сборка была нацелена на x86 вместо Any CPU. Я изменил его на любой процессор, и он сработал. Превратите свой комментарий в ответ, и я приму его. Спасибо :) –
@Steve Вы действительно не хотите требовать прав администратора. –