Ошибка System.Security.SecurityException: "Requested registry access is not allowed." в UWP C#
Я делаю программу на c#. И мне нужно было создать раздел в реестре и параметр Dword в нем. Мне нужна была ветка HKEY_LOCAL_MACHINE. В общем я написал этот код:
RegistryKey LcMach = Registry.LocalMachine;
RegistryKey key = LcMach.OpenSubKey(@"System\ControlSet001\Control\", true);
key.CreateSubKey(@"BootControl\");
key.SetValue("BootProgressAnimation", 1, RegistryValueKind.DWord);
И так получилось, что возникла проблема:
System.Security.SecurityException: "Requested registry access is not allowed."
Пошелестев интернет, я искал решение проблемы. Выяснив, что код не работает без прав администратора, я добавил в app.manifest этот код:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
После этого возникла та же история. Запускал Visual Studio от имени администратора - без толку. Еще 1 код попробовал, но и это меня не спасало:
using (var hklm = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64))
using (var regkey = hklm.OpenSubKey(@"System\ControlSet001\Control\", writable: true))
{
var reg = regkey.CreateSubKey(@"BootControl\", writable:true);
reg.SetValue("BootProgressAnimation", 1);
}
И так обрыскав весь интернет, я пришел сюда. В чем проблема неработоспособности этого кода?
НОВЫЕ ПОДРОБНОСТИ:
Я только что попробовал использовать этот код в WPF и UWP. В WPF все сработало. Но с UWP другая ситуация. Не понятно почему в UWP, если прописать using Microsoft.Win32;, то возникает ошибка, что нет в этом классе RegestryKey. Если не прописывать этого, то если нажать на правую кнопку мыши на RegestryKey, то в меню написано не импортировать using Microsoft.Win32;, а написано скачать (или найти) и установить Microsoft.Win32 через NuGet.