c# - ClickOnce 应用程序在 Windows 自动启动时不记住设置

标签 c# clickonce settings

我有一个使用 ClickOnce 部署的应用程序,并且可以选择自动随 Windows 启动。但是,当我重新启动 Windows 时,我的应用程序成功启动,但无法找到设置(我只是使用内置的设置功能)。但是,如果我关闭自动启动的应用程序并使用桌面上的图标重新启动它,它就能找到它的设置。

要使用 Windows 自动启动,我使用以下代码:

Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
if (runOnStartup == true) 
    key.SetValue("AppName", Application.ExecutablePath.ToString());
else 
    key.DeleteValue("AppName");

我注意到桌面快捷方式并没有直接指向一个 exe,而是一个像这样的 url:

http://pathToApp.application#AppName.application, Culture=neutral, PublicKeyToken=c8c0a22ba65cb9f4, processorArchitecture=x86

如何让我的自动启动应用程序以与快捷方式相同的方式工作?

最佳答案

您无法控制 ClickOnce 应用程序的安装位置,它会在升级后随时移动,因此我不会在 app.config 文件中存储可以更改的设置。相反,我将自己的设置文件(通常使用简单的 xml 序列化对象)创建到“已知”文件夹,例如 Environment.SpecialFolder.CommonApplicationData 或 Environment.SpecialFolder.LocalApplicationData

关于c# - ClickOnce 应用程序在 Windows 自动启动时不记住设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/778637/

相关文章:

azure - 在 Azure Pipeline 中签署代码时构建失败

c# - SQL Server CE 在某些计算机上速度极慢

python - Django:配置不当:SECRET_KEY 设置不能为空

iphone - 关于以编程方式访问 ios 设置

ios - 在应用内的 View 中显示 Settings.bundle Root.plist

c# - 错误 : PayPal: Prop is required: payment

c# - 从列表中初始化嵌套对象

c# - 按字母顺序添加到 ObservableCollection

winforms - ClickOnce - 安全问题

c# - 使用适用于 .NET 的 Google API 访问用户信息