真正的ClickOnce发布应用程序的配置文件在哪里?

时间:2013-02-28 16:23:26

标签: c# clickonce

我正在使用它来获取应用程序配置文件的位置:

string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;

但它没有给我实际使用的文件的路径。

我的问题是,我需要我的应用程序可以从Windows任务计划程序运行,我希望它采取参数。我一直这样做的方式是,当我在Scheduler中创建任务时,单击Browse并找到appref-ms图标。然后调度程序将填充文本框,我在其中输入文件的路径,其中包含AppData\Local\Apps\2.0\...下的奇怪位置的路径(而不是仅保留图标的路径)。这样我也可以添加参数,一切都很好,不像我尝试过的其他东西,例如使用.exe文件的路径或键入图标的路径,除了......

当从任务计划程序启动应用程序时,它使用的配置文件与使用该图标启动时不同。假设我从任务计划程序运行后,将设置S更改为值T(始终在应用程序内)。然后,当我从图标中运行时,我将设置S更改为I。下次从任务计划程序运行应用程序时,设置S将为T,下次从图标运行时,设置S将为I。另外,在上面代码给我的路径中设置文件内的S只是默认值(不是T也不是I)。

这是一个很大的问题,因为无论我如何运行应用程序,我都需要设置相同的设置。我正在考虑用我自己确定的位置替换我自己文件的默认设置文件。这是我唯一的选择吗?有没有其他方法从任务计划程序运行应用程序,以便我能够传递的参数也将使用与从图标运行时相同的配置文件?如果一段代码会强制应用程序使用相同的配置文件呢?

2 个答案:

答案 0 :(得分:1)

您可以将设置移动到每个人都可以找到的地方。如果它是保存的任何内容,您仍然希望这样做,因为ClickOnce更新可以消除用户保存的设置。查看this article了解详情。

答案 1 :(得分:0)

我知道您可以从

获取应用程序安装路径
INSTALLED_PATH = Application.StartupPath ;

一种方法可能是,在每次ClicOnce部署之后,应用程序的第一次启动将来自图标。如果应用程序然后将INSTALLED_PATH保存到固定文本文件,那么任务可以从那里获取路径。这有道理吗?

相关问题