如何使解决方案中的所有项目使用单个应用程序配置文件
本文关键字:单个 应用程序 配置文件 项目 解决方案 何使 | 更新日期: 2023-09-27 18:16:11
我们的应用程序目前是遗留的c++应用程序,c# . net应用程序,以及各种DLL和其他支持文件的混合体。我们最近遇到了一个问题,我们需要更改Windows UI中Internet选项下的设置;它叫做generatePublisherEvidence
。
所以我的问题实际上是双重的:
-
除了使用应用程序目录中名为
myEXE.exe.config
的文件之外,还有更好的方法来处理此设置吗?顺便说一下,下面是文件的内容:<?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <generatePublisherEvidence enabled="false"/> </runtime> </configuration>
-
如果
.exe.config
文件是适当的选择,那么是否有可能避免在我的应用程序中为每个EXE包含其中一个(我们有18个)?换句话说,是否存在一些与它们都在寻找的文件*.exe.config
等效的机制?也许在每个项目中都有设置?
我认为最简单的方法是George提到的(多个应用程序的通用app.config),但是如果您的应用程序需要写入该配置文件,锁定错误可能确实是一个问题。您给出的示例只有一个键,但我认为如果您想将其用作所有应用程序的中心配置,那么它很快就会变得更大。
这完全取决于你读/写配置的频率——你的应用程序读/写配置的频率和并发性越高,同步访问就越重要。通常,应用程序倾向于读取配置值一次并缓存它,但由于您没有指定,我将给出一些如何处理它的想法:
-
为了避免并发问题,你可以编写一个windows或web服务,它写入/读取与锁定机制同步的中央配置文件,并且你的应用程序使用WCF合约来读取/写入值。这种方法的实现工作量明显大于选项2。如果你想了解更多,你可以在这里找到一篇文章。
-
或者,您可以使用带有配置表的SQL数据库,它使用事务,因此不会有这样的问题。您可以使用EF与Linq轻松地读取/修改值。这样做的好处是你可以使用POCO类——关于如何快速开始,请看这里。
为了给这个问题一个答案,我们选择继续做我们一直在做的事情。考虑到我们的简单需求,似乎没有更好的选择了。