Как построить x64, совместимое с Windows 7 Applicate?
-
23-09-2019 - |
Вопрос
У нас есть устаревшее заявление, которое обращается к реестру. Поскольку это 32 -битное приложение, оно обращается к реестру в Windows 7 через виртуализацию реестра при ссылке на HKEY_LOCAL_MACHINE Software. Мой вопрос заключается в том, какие настройки (ы) в Visual Studio нам нужно изменить для составления наших приложений, где они получают доступ к реестру «обычно», не проходя виртуализацию реестра?
Решение 3
Вы имеете в виду так?
$web = Get-SPWeb http:/SC/site
$web.WebTemplate + " " + $web.WebTemplateId
$web.close()
. Другие советы
Если вы внимательно прочитаете страницу виртуализации реестра, вы заметите, что виртуализация не ограничена 64-разрядными окнами. В нем говорится, что только 32-битные процессы будут виртуализированы. Но виртуализация выполняется как на 32-, так и для 64-битной перспективы, так и позже. Таким образом, заголовок вопроса и тег X64 немного вводят в заблуждение.
Чтобы ответить на ваш вопрос, на той же странице говорится: «Виртуализация реестра отключена для следующих: ... процессов, которые запросили ExecutionLevel, указанные в их манифестах».
Таким образом, вы можете отключить виртуализацию, добавив манифестный файл в ваш исполняемый файл, который указывает его уровень выполнения. Есть по крайней мере статья Microsoft KB о том, как это сделать в Visual Studio 2005: http://support.microsoft.com/kb/944276.
Почему бы тебе не использовать:
Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software\...");
return (string)key.GetValue("blah");
и добавьте доступ к реестру в файле customtrust.config.
Или это не работает в Windows 7?