Я занимаюсь разработкой с использованием устройства WinCE 5.
Я сохраняю изменения в реестре на основе кустов, который находится на постоянном носителе. Мои ключи находятся под HKLM \ Softare \ AppName. HKLM \ RegPersisted = 1 для справки.
Я считаю, что даже если я вызываю Flush () для моего подраздела (из Compact Framework), изменение не сохраняется, если я сразу выключаю его.
Аналогично, если я позвоню
Microsoft.Win32.Registry.LocalMachine.Flush();
Я получаю тот же результат.
Однако, если я позвоню
[DllImport("coredll.dll", EntryPoint = "RegFlushKey", SetLastError = true)]
public static extern uint RegFlushKey(uint hKey);
с UINT для HKLM, то изменение действительно сохраняется, если я выключаю сразу после.
Есть идеи, что обычные версии .Net не работают? Или, возможно, они работают, но по какой-то причине это ленивый сброс, тогда как прямая версия coredll не ленивая?
Спасибо.