2012-03-19 2 views
0

Я создал подраздел в реестре, 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 по этому вопросу утверждает, что этого не должно быть. Помогите!

+0

Возможно, на вас повлияло перенаправление реестра Wow64 вместо (или вместе с?) Виртуализацией реестра: http://msdn.microsoft.com/en-us/library/aa384253.aspx У Windows наверняка много дыма и зеркала при доступе к реестру. –

+0

Да, WoW64 является виновником. По какой-то причине сборка была нацелена на x86 вместо Any CPU. Я изменил его на любой процессор, и он сработал. Превратите свой комментарий в ответ, и я приму его. Спасибо :) –

+0

@Steve Вы действительно не хотите требовать прав администратора. –

ответ

1

Возможно, вы под воздействием перенаправлением реестра Wow64 вместо (? Или вместе с) виртуализация реестра:

Windows, уверен, есть много дыма и зеркал происходит при доступе реестра.

+0

Теперь, построив любой процессор (был x86), вытащил WoW64 из картинки. Задача решена. Благодарю. –

Смежные вопросы