2013-02-28 47 views
0

我使用这个让我的应用程序的配置文件中的位置:真正的ClickOnce发布应用程序的配置文件在哪里?

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)。

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

回答

1

您可以将设置移动到每个人都可以找到它们的位置。如果它保存了任何内容,则无论如何您都需要这样做,因为ClickOnce更新可以清除用户保存的设置。查看this article了解更多信息。

+0

这也意味着我将无法使用'Properties.Settings.Default ...'是这样吗? – Juan 2013-02-28 22:23:49

+0

我不使用.NET项目内置的设置文件。如果确实让ClickOnce处理它们,有时会将它们复制到前面,有时则不会。它会部署任何新的东西,所以如果你有你想要使用的默认值,那将会起作用,但是如果你改变了它们,它就不会。我编写了自己的配置管理器,将键/值对写出到我在部署之外存储的XML配置文件中。 – RobinDotNet 2013-03-04 07:00:43

0

我知道你可以从

INSTALLED_PATH = Application.StartupPath ; 

一种方法获取应用程序安装路径可能是最早推出的应用程序,每个ClicOnce部署后,会从图标。如果应用程序然后将INSTALLED_PATH保存到固定的文本文件中,那么任务可以从那里获取路径。这有道理吗?

相关问题