首页 > 解决方案 > .appxbundle 无法修改注册表

问题描述

我有这段简单的代码,添加我的应用程序以在 Windows 启动时运行。工作正常。

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

然后我将它与 Windows 应用程序打包项目打包,将其连接到 Windows 商店,选择“创建应用程序包..”并获得生成的 .appxbundle。到目前为止还好。我在本地安装它。(还安装生成的证书(.cer),所以我可以安装它。)

一旦我启动已安装的应用程序并单击运行上述代码的按钮,注册表中没有任何变化!它不会崩溃,我有一个 try..catch 代码。它只是默默地忽略它。

从 Visual Studio 运行它工作正常,注册表得到更新。

实际上,我想要的只是在 Windows 启动时启动应用程序,我对如何实现这一点并不是特别感兴趣,所以欢迎任何想法!


编辑:我忘了说最重要的东西:它是一个 Windows 桌面、Windows 窗体应用程序。它不是一个 UWP 应用,而是一个继承普通 System.Windows.Forms.Form 的窗口,用 x86 编译。

Xavier 提到了 StartupTask 扩展,它是一个 nuget 包,但它似乎在您拥有 UWP 应用程序时使用。

标签: c#windows-10registrydesktop-bridge

解决方案


实际上,我想要的只是在 Windows 启动时启动应用程序,我对如何实现这一点并不是特别感兴趣,所以欢迎任何想法!

你需要windows.startupTask为打包的 UWP 应用使用扩展。请参阅用户登录 Windows 时启动可执行文件。使用此扩展程序,您可以在用户登录时启动您的应用程序。

请注意:用户必须至少启动一次您的应用程序才能注册此启动任务。


推荐阅读