Путь реестра, возвращающий значение null на Windows 10 64bit Enterprise [duplicate]

22
задан Peter Mortensen 13 February 2015 в 03:01
поделиться

4 ответа

Похоже, ваш проект unit testing компилируется до 64 бит. В настройках Compile вашего проекта тестирования устройства установите «Целевой ЦП» на x86 (вместо AnyCPU).

22
ответ дан Heinzi 28 August 2018 в 00:51
поделиться

Если вам действительно нужно 32-битное приложение, вы можете получить доступ к 64-битным реестрам следующим образом:

RegistryKey localMachine64 = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey regKey = localMachine64.OpenSubKey(@"Software\MyCompany\MyApp\", false);
7
ответ дан nmat 28 August 2018 в 00:51
поделиться

Да, у меня тоже такая же проблема с 64-разрядной версией Windows 7 и Visual Studio & nbsp; 2008 SP1. Но мое решение противоположное: переход от «x86» к «любому процессору» или «x64».

3
ответ дан Peter Mortensen 28 August 2018 в 00:51
поделиться

Кому может быть

В моем тесте, если вы используете AnyCpu для создания кода для работы с OpenSubKey и запускаете его на ОС x64, вы обнаружите, что не работаете над тем, где вы ожидаете.

Скажите, например: (Проверено в .net 4.5.2)

RegistryKey rsk = Registry.LocalMachine.OpenSubKey("SOFTWARE"); 

, когда вы проверяете rsk.GetSubKeyNames ()

Я проверил это в debug, результат не является ни HKLM, ни HKCU, по крайней мере, я не могу сказать, что это такое (очень похоже на HKCU, но не то же самое).

И самая известная проблема, которая может привести к этому:

DeleteSubKeyTree выкинет Argument Exception. если вы попробуете открыть подраздел перед удалением, это нормально, но когда вы делаете удаление, он скажет: «Эй, это не здесь ...

Так что будьте осторожны, теперь я никогда не буду использовать AnyCPU больше.

0
ответ дан Đēēpak Shãrmã 28 August 2018 в 00:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: