如何使解决方案中的所有项目都使用单个应用程序配置文件?

时间:2013-05-31 13:40:49

标签: c# .net visual-studio app-config

我们的应用程序目前混合使用旧版C ++应用程序,C#.NET应用程序以及各种DLL和其他支持文件。我们最近遇到了一个问题,我们需要更改“Internet选项”下Windows窗口中显示的设置;它被称为generatePublisherEvidence

所以我的问题实际上是双重的:

  1. 除了使用名为myEXE.exe.config的应用程序目录中的文件外,还有更好的方法来处理此设置吗?顺便说一下,这是文件的内容:

    <?xml version="1.0" encoding="utf-8"?> 
    <configuration> 
        <runtime> 
            <generatePublisherEvidence enabled="false"/> 
        </runtime> 
    </configuration>
    
  2. 如果.exe.config文件是合适的选择,那么是否可以避免在我的应用程序中为每个EXE包含其中一个(我们有18个)?换句话说,是否有一些文件*.exe.config的等效机制,他们都在寻找?也许每个项目都有一个设置?

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法是乔治提到它(Common app.config for multiple applications),但如果你的应用程序需要写入该配置文件,那么锁定错误可能确实是一个问题。您给出的示例只有一个密钥,但我认为如果您希望将其用作所有属于一起的应用程序的中央配置,它将会很快变大。

这一切都取决于您读/写配置的频率 - 您的应用程序越频繁和同时执行它,同步访问就越重要。通常,应用程序倾向于读取配置值一次并缓存它,但是由于您没有指定我会给出一些如何处理它的想法:

  1. 为了避免并发问题,您可以编写一个窗口或Web服务,它可以与锁定机制同步地写入/读取中央配置文件,并且您的应用程序正在使用WCF合同来读取/写入值。此实施工作要比选项2大得多。如果您想了解更多相关信息,可以找到一篇文章here.

  2. 或者,您可以将SQL数据库与配置表一起使用,该配置表使用事务,因此不会出现此类问题。您可以使用EF与Linq轻松读取/修改值。优点是您可以使用POCO课程 - 如需快速入门,请查看here.

答案 1 :(得分:0)

为了给出答案,我们选择继续我们一直在做的事情。鉴于我们的简单需求,似乎没有一个简单/更好的选择。