Silverlight 4 WScript.RegRead не может прочитать новое добавленное значение в реестре под Windows 7 - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть приложение Silverlight 4, в котором я могу без проблем прочитать существующие значения реестра из ветви HKLM, но если я добавлю новое значение, чтение не будет выполнено с FileNotFoundException.Вы можете увидеть в коде ниже;первое чтение работает нормально, но второе не может прочитать тестовое значение, которое я добавил в реестр.

ПРИМЕЧАНИЕ. Я могу прочитать новый добавленный ключ в Windows XP;просто не под Windows 7.

Любая помощь будет принята с благодарностью.

if (Application.Current.InstallState == InstallState.Installed && Application.Current.HasElevatedPermissions)
{
    if (AutomationFactory.IsAvailable)
    {
        dynamic shell = AutomationFactory.CreateObject("WScript.shell");

        try
        {
            var resa = shell.RegRead(@"HKLM\SOFTWARE\Microsoft\.NETFramework\InstallRoot");
            var resb = shell.RegRead(@"HKLM\SOFTWARE\Microsoft\.NETFramework\Test");

            var regValue = shell.RegRead(DbTypeRegKeyName);
            var dbType = ExtractDbTypeFromId(regValue);
        }
        catch (FileNotFoundException fileNotFoundException)
        {
            throw new Exception(string.Format("Failed to read registry value '{0}' with error '{1}'.", DbTypeValueName, fileNotFoundException));
        }
    }
}

1 Ответ

1 голос
/ 05 января 2011

Работает нормально под 32-битной версией Windows.Оказывается, 64-битная версия Windows имеет другое представление о реестре.Добавление моего ключа к ключу Wow6432Node в реестре решило проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...