真正的ClickOnce发布的应用程序的配置文件在哪里?
本文关键字:配置文件 在哪里 应用程序 ClickOnce | 更新日期: 2023-09-27 18:01:31
我用这个来获取我的应用程序的配置文件的位置:
string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
但是它没有给我实际正在使用的文件的路径。
我的问题是,我需要我的应用程序可以从Windows任务调度程序运行,我希望它采取参数。我一直在做的是,当我在Scheduler中创建任务时,单击Browse并找到appref-ms
图标。然后,Scheduler将填充文本框,我将在其中输入文件的路径,并在AppData'Local'Apps'2.0'...
下输入到一个奇怪位置的路径(而不仅仅保留图标的路径)。这样我也可以添加参数,一切都工作得很好,不像我尝试过的其他事情,比如使用.exe
文件的路径或输入图标的路径,除了…
当应用程序从任务调度程序启动时,它使用的配置文件与使用图标启动时不同。假设我在任务调度程序中运行S
后,将其设置为T
的值(总是在应用程序中)。然后,当我从图标运行时,我将设置S
更改为I
。下次我从任务调度程序运行应用程序时,设置S
将是T
,下次我从图标运行它时,设置S
将是I
。另外,在上面代码给我的路径中设置S
只是默认值(既不是T
也不是I
)。
这是一个大问题,因为我需要我的设置是相同的,无论我如何运行应用程序。我正在考虑用我自己确定的位置替换我自己文件的默认设置文件。这是我唯一的选择吗?有没有其他的方法从任务调度程序运行应用程序,这样我就可以传递参数,也将使用相同的配置文件,当我从图标运行它?不如写一段代码,强制应用程序始终使用相同的配置文件?
你可以把设置移到每个人都能找到的地方。如果是已保存的内容,无论如何都要这样做,因为ClickOnce更新会清除用户保存的设置。
我知道你可以从
得到应用程序的安装路径INSTALLED_PATH = Application.StartupPath ;
一种方法可能是,在每次ClicOnce部署之后,应用程序的第一次启动将从图标启动。如果应用程序随后将INSTALLED_PATH保存到一个固定的文本文件中,那么任务可以从中获取路径。明白了吗?