我正在使用它来获取应用程序配置文件的位置:
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
)。
这是一个很大的问题,因为无论我如何运行应用程序,我都需要设置相同的设置。我正在考虑用我自己确定的位置替换我自己文件的默认设置文件。这是我唯一的选择吗?有没有其他方法从任务计划程序运行应用程序,以便我能够传递的参数也将使用与从图标运行时相同的配置文件?如果一段代码会强制应用程序使用相同的配置文件呢?
答案 0 :(得分:1)
您可以将设置移动到每个人都可以找到的地方。如果它是保存的任何内容,您仍然希望这样做,因为ClickOnce更新可以消除用户保存的设置。查看this article了解详情。
答案 1 :(得分:0)
我知道您可以从
获取应用程序安装路径INSTALLED_PATH = Application.StartupPath ;
一种方法可能是,在每次ClicOnce部署之后,应用程序的第一次启动将来自图标。如果应用程序然后将INSTALLED_PATH保存到固定文本文件,那么任务可以从那里获取路径。这有道理吗?