2

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

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

4

1 回答 1

2

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

于 2009-04-26T23:19:52.053 回答