2012-03-21 48 views
5

我们有一个计划任务运行许多C#控制台应用程序。所有这些应用程序都有自己的配置文件,其中包含我们的smtp服务器等设置。如果我们的smtp服务器发生了变化,我们将不得不手动进入每个配置文件并进行更改。多个应用程序可以查看C:驱动器上的1个配置文件,还是被认为是不好的做法?使用数据库来存储值是一个不错的选择。多个C#应用程序可以使用一个App.Config文件吗?

+0

为什么使用数据库的禁忌?这是一个很常见的做法。 – 2012-03-21 19:24:13

+1

我们的管理员可能没有数据库访问权限。 – broke 2012-03-21 19:48:15

回答

14

您可以指向外部的配置文件,如下面的应用程序的配置文件中,然后把所有的应用程序都使用同一组的设置,从单个文件:

<appSettings file="c:\CommonSettings.config"> 
    <add key="MyKey" value="12"/> 
</appSettings> 

欲了解更多信息,你可以阅读以下文章:

+0

这很酷,谢谢! – broke 2012-03-21 20:27:54

3

由于.config文件名需要与可执行文件名称匹配(因此对于example.exe,它将是example.exe.config),因此不能直接共享一个应用程序配置文件。

由于它们是单独的应用程序,因此对于不同的应用程序有单独的值是有意义的。

如果有你想分享的配置部分,你可以使用configSource属性指向一个文件。该appSettings部分也有特定的属性file,你可以以同样的方式使用。

如果有一定的配置值跨所有应用程序共享,可以考虑将它们放置在machine.config文件正在使用的框架的版本。

2

可以使用自定义XML文件来存储配置数据? 没有必要使用app.config。

+0

我可以使用xml文件。无论如何,我认为这可能会更容易。 – broke 2012-03-21 19:47:52

0

使用Cinchoo框架,你可以做到这一点,通过简单地创建自定义的配置对象,并用它所有的控制台应用程序。它们都将从相同的配置文件中读取。欲了解更多信息,请访问:http://www.cinchoo.com

相关问题