我有一个使用 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/