Доступ к реестру на Windows 7 C # - PullRequest
0 голосов
/ 23 июля 2011

Я пытаюсь создать программу обновления, которая при обновлении записывает номер сборки в реестр Windows 7, который основная программа читает при проверке обновлений.Я прошел через виртуализацию UAC на странице Microsoft и ничего не нашел.Мой app.manifest имеет

<requestedExecutionLevel  level="highestAvailable" uiAccess="false" />

, и все же, когда я смотрю в HKEY_Local_Machine \ Software, записи о сборке нет, я даже не вижу ее в HKEY_USERS \ _Classes \ VirtualStore \ Machine \ Software.

код, который я использую для входа в реестр:

            Registry.LocalMachine.CreateSubKey("SOFTWARE\\build");
        RegistryKey myKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\\build", true);

        myKey.SetValue("build", "3", RegistryValueKind.String);

какие-либо идеи / предложения?

1 Ответ

1 голос
/ 23 июля 2011

Если ваше приложение предназначено для платформ x86, при работе в системе x64 оно будет использовать соответствующий узел реестра со следующими именами:

HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ или HKEY_CURRENT_USER \ SOFTWARE \ Wow6432Node.

Итак, если вы установите целевую платформу на x86 для вашей сборки, в системах x86 она будет идти под HKEY_LOCAL_MACHINE \ SOFTWARE, тогда как в системах x64 она будет идти под HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node, который является зарезервированным узлом для приложений, работающих наРежим WOW64 (Windows 32-bit на Windows 64-bit).

Для получения дополнительной информации см. Отражение реестра

...