对windows服务和GUI使用相同的app.config
本文关键字:app config windows 服务 GUI | 更新日期: 2023-09-27 18:23:50
我已经运行了windows服务,该服务正在使用它的app.config来获取一些重要值。现在,我想提供一个不同的GUI应用程序,它提供了一种更改这些重要值并将其保存到同一个app.config的方法。
我的问题是:是否可以通过使用"添加为链接"在项目之间共享此app.config?如果我使用GUI应用程序并更改一些值,这会反映在windows服务中吗?
编辑:如果这是有效的,那么也许有人也知道链接如何从更技术的角度工作的细节?
两个项目可以共享相同的app.config
。不确定是否链接,但您可以在两个不同的配置中使用相同的结构和值,但在部署它时,会将它部署在与windows服务相同的文件夹中。
现在,关于更新app.config
的值,如果win服务正在运行,它们将不会反映在windows服务中。为此,您需要重新启动windows服务。因为应用程序设置缓存在内存中,并在应用程序启动时加载到内存中。您可以使用ConfigurationManager.RefreshSection
刷新内存中加载的配置。你可以在MSDN上阅读。您必须在windows服务中执行此操作。
希望这些信息能帮助你。
如果您的GUI应用程序不依赖app.config中的任何值(即只需编辑它),并且您计划从与服务相同的文件夹启动GUI应用程序,则可以像打开任何(text/xml)文件一样打开它(甚至可以包括文件打开对话框)。
根据你的VCS,你可以将app.config从你的windows服务项目"链接"到你的GUI应用程序项目——我个人使用SubVersion会对Externals这样做。
一般来说,"windows服务"中每三分之一被调用的应用程序都使用windows应用程序项目部署的配置文件。正因为如此,当前的配置取决于启动项目(可以是wf、wpf、web…)
只需记住设置要与应用程序一起部署的附加配置文件
属性->复制到输出文件夹->始终复制如果查看已部署的应用程序目录,这种行为很容易理解。它包含所有项目的dll以及配置为复制到最终文件夹的所有其他文件。默认情况下,每个项目对这些文件具有相同的访问权限,因为它们都位于同一位置。
但要对Amar Palsapure所说的appconfig数据如何缓存感到高兴。