.appxbundle не может изменить реестр - PullRequest
0 голосов
/ 19 мая 2019

У меня есть этот простой кусок кода, добавляющий мое приложение для запуска при запуске Windows.Работает отлично.

RegistryKey rk = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
rk.SetValue("my_app", Application.ExecutablePath);

Затем я упаковываю его в проект упаковки приложений Windows, подключаю к хранилищу Windows, выбираю «Создать пакеты приложения ...» и получаю полученный .appxbundle.Хорошо пока.Я устанавливаю это локально.(также установка сгенерированного сертификата (.cer), чтобы я мог установить его вообще.)

Как только я запускаю установленное приложение и нажимаю кнопку, запускающую приведенный выше код, в реестре ничего не меняется!Это не сбой, у меня есть попытка .. поймать код.Он просто молча игнорирует его.

Запуск из Visual Studio работает нормально, реестр обновляется.

На самом деле, все, что я хочу, это приложение, которое запускается при запуске Windows, меня не особо интересует, как этого добиться, поэтому любые идеи приветствуются!


Редактировать: я забылсказать самое главное: это рабочий стол Windows, приложение Windows Forms.Это не приложение UWP, а окно, унаследованное от обычного System.Windows.Forms.Form, скомпилированного с x86.

Ксавье упоминает расширение StartupTask, это пакет nuget, но, кажется, он используется, когда у вас естьприложение UWP.

1 Ответ

3 голосов
/ 20 мая 2019

На самом деле все, что я хочу, - это приложение, которое запускается при запуске Windows, меня не особо интересует, как этого добиться, поэтому любые идеи приветствуются!

Вам необходимо использовать расширение windows.startupTask для вашего упакованного приложения UWP. Смотрите Запустите исполняемый файл, когда пользователи войдут в Windows . С этим расширением вы можете запускать приложение, когда пользователь входит в систему.

Обратите внимание: пользователь должен запустить ваше приложение хотя бы один раз, чтобы зарегистрировать эту задачу запуска.

...