Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 真正的ClickOnce发布应用程序&x27;谁的配置文件?_C#_Clickonce - Fatal编程技术网

C# 真正的ClickOnce发布应用程序&x27;谁的配置文件?

C# 真正的ClickOnce发布应用程序&x27;谁的配置文件?,c#,clickonce,C#,Clickonce,我使用它来获取应用程序配置文件的位置: string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile; 但是它没有给我实际使用的文件的路径 我的问题是,我需要我的应用程序能够从Windows任务调度器运行,并且我希望它能够获取参数。我一直在这样做,当我在调度程序中创建任务时,单击浏览并找到appref ms图标。然后,调度程序将在文本框中输入文件路径,并在AppData\Local\Apps\2.0\…下输入奇

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

string path = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile;
但是它没有给我实际使用的文件的路径

我的问题是,我需要我的应用程序能够从Windows任务调度器运行,并且我希望它能够获取参数。我一直在这样做,当我在调度程序中创建任务时,单击浏览并找到
appref ms
图标。然后,调度程序将在文本框中输入文件路径,并在
AppData\Local\Apps\2.0\…
下输入奇怪位置的路径(而不仅仅是保留图标的路径)。通过这种方式,我还可以添加参数,一切都可以正常工作,这与我尝试过的其他方法不同,例如使用
.exe
文件的路径或键入图标的路径,除了

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


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

我知道您可以从

INSTALLED_PATH = Application.StartupPath ;

一种方法是,在每次Clicone部署之后,应用程序的第一次启动将从图标开始。如果应用程序随后将安装的路径保存到一个固定的文本文件中,那么任务就可以从中获取路径。这有意义吗?

您可以将设置移动到每个人都能找到的地方。如果保存了任何内容,您仍然需要执行此操作,因为ClickOnce更新可以删除用户保存的设置。查看更多信息。

这也意味着我将无法使用
属性.设置。默认…
是否正确?我不使用.NET项目内置的设置文件。如果您让ClickOnce处理它们,有时它会将它们向前复制,有时则不会。它将部署任何新的东西,所以如果您有想要使用的默认值,这将起作用,但如果您更改它们,则不会起作用。我编写了自己的配置管理器,将键/值对写入到存储在部署外部的XML配置文件中。