У меня есть этот простой фрагмент кода, добавляющий мое приложение для запуска при запуске 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.